СОРТИРОВКА ПО КЛЮЧУ: SORTED, KEY, LAMBDA
Простая сортировка
Функция sorted() возвращает новый отсортированный список, не меняя исходный:
1 2 3
А метод a.sort() сортирует список на месте и ничего не возвращает.
sorted против sort
| Вызов | Меняет исходный? | Что возвращает |
|---|---|---|
| sorted(a) | нет | новый список |
| a.sort() | да | None |
Сортировка по своему правилу: параметр key
Параметр key принимает функцию, которая для каждого элемента возвращает «вес» для сравнения:
1 2
lambda — функция в одну строку
lambda — короткая безымянная функция. Запись lambda x: x[1] означает «возьми x и верни его второй элемент»:
1 2 3
Сортировка по двум критериям
Если нужно сортировать сначала по одному полю, а при равенстве — по другому, возвращаем из lambda кортеж:
1 2
Минус перед p[1] разворачивает порядок по очкам, а имя сравнивается по возрастанию. Этот приём — основа задания 26.
Важно: знак минус разворачивает только числа
Трюк -p[1] для разворота работает только с числами. Для строк минус не применить — там используют reverse=True (но он развернёт все критерии сразу). Когда нужны разнонаправленные сортировки, комбинируй минус для чисел и обычный порядок для строк в одном кортеже-ключе.