Python .. Доступ к функции сортировки по умолчанию?

! будет работать над сравнением значений, так что это то же самое, что и второе сравнение. потому как ! будут ломать false, 0, null как false, и они не совпадают с типами, которые вы видите. "" может быть исключением для этого, потому что я всегда использую trim ()! = "" для сравнения строк. Я не знаю об этом.

4
задан AK47 27 February 2019 в 15:48
поделиться

2 ответа

Мы можем использовать составной ключ сортировки, первый сортировать по длине, второй лексикографически. Мы делаем это путем создания кортежа, потому что кортежи будут естественным образом сортироваться, используя элементы в порядке их появления.

b = ['six', 'small', 'he', 'foxes', 'saw']
b.sort(key=lambda s: (len(s), s))

Для записи приведенные выше результаты приводятся в этом отсортированном списке ::

['he', 'saw', 'six', 'foxes', 'small']

Какой правильный порядок указан в вопросе (но пример выходных данных в вопросе неверный, пожалуйста, помните об этом, прежде чем понизить голосование!)

0
ответ дан Óscar López 27 February 2019 в 15:48
поделиться

Простой вариант - выполнить двойную сортировку:

b.sort()
b.sort(key=len)

Поскольку сортировка стабильна , она сохраняет порядок элементов в случае, если они равны по ключу; поэтому, сортируя сначала по алфавиту, элементы одинаковой длины остаются отсортированными таким образом.

0
ответ дан RemcoGerlich 27 February 2019 в 15:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: