Ваш пример вывода является неправильным, так как он будет выглядеть следующим образом:
Perl
Python
and
are
languages
programming
Сортировка по капиталу первого приведет к Perl
выше Python
, потому что e
приходит первым. Кроме того, поскольку верхний регистр на первом месте, вы можете просто сделать
print "\n".join(sorted(a.split()))
, чтобы получить желаемый результат.
EDIT: После перечитывая вопрос, который я придумал это исправить/выход:
print "\n".join(sorted(a.split(), key=lambda x: x >= 'a'))
Выход:
Python
Perl
and
are
programming
languages
Объяснение: функции сортировки в Python являются stable, что означает, что порядок элементов сохраняется относительно друг друга, если они имеют один и тот же ключ сравнения. Ключевая функция присваивает значение True
всему, что больше или равно 'a'
(это любая строка, начинающаяся с строчной буквы), иначе False
. False
сравнивает меньше True
, поэтому все прописные буквы перемещаются вперёд, без изменения порядка прописных или строчных слов.
пожалуйста, покажите нам код ... – avasal
вопрос непонятен – Fivesheep
это ваша домашняя работа? –