Я должен взять список слов и отсортировать его, за исключением того, что мне нужно сгруппировать все строки, начинающиеся сначала с «x».Более питоновский способ написать это выражение?
Вот что я получил:
list_1 = []
list_2 = []
for word in words:
list_1.append(word) if word[0] == 'x' else list_2.append(word)
return sorted(list_1) + sorted(list_2)
Но у меня есть чувство, что это гораздо более элегантный способ сделать это ...
EDIT
Пример: ['mix', 'xyz', 'apple', 'xanadu', 'aardvark']
урожайности ['xanadu', 'xyz', 'aardvark', 'apple', 'mix']
.
+1 +1, мне понадобился момент, чтобы понять. –
Не понимаю, почему это работает. Всегда ли правда, что x? – helpermethod
@Helper: он сравнивает кортежи, первый элемент которого либо «False», либо «True». Таким образом, все кортежи имеют «False» как первый элемент, предшествующий всем кортежам, которые имеют «True» как первый элемент. Когда первые элементы одинаковы, сравнение выполняется на основе второго элемента, который в этом случае также говорит о стандартном алфавитном порядке. – SilentGhost