Sort a List in Python with sorted() and key
Sort numbers, words or whole records by any field, ascending or descending, in one line.
- sorted() versus list.sort()
- Sorting records with key=lambda
- reverse=True for descending order
1stAda (95)2ndSam (91)3rdLin (88)The key decides the order
Функция sorted() возвращает новый отсортированный список и не трогает исходный. Для более сложных данных, например списка словарей, параметр key задаёт критерий сортировки, скажем, сортировать студентов по баллам.
Главное
sorted(items)returns a new list;items.sort()changes the list in place.- key=lambda s:
s["score"]sorts records by one field. - reverse=True sorts from largest to smallest.
- Python's sort is stable: equal keys keep their original order.
Когда это нужно?
- Освоить синтаксис и основные понятия Python на коротких и понятных примерах.
- Заложить прочную основу, прежде чем переходить к более сложным задачам.
- Запускать код прямо в браузере, не устанавливая Python на компьютер.
Пример кода
students = [
{"name": "Lin", "score": 88},
{"name": "Ada", "score": 95},
{"name": "Sam", "score": 91},
]
ranked = sorted(students, key=lambda student: student["score"], reverse=True)
print([student["name"] for student in ranked])
Результат выполнения
['Ada', 'Sam', 'Lin']
Разбор кода
Функция lambda student: student["score"] достаёт балл каждого студента, чтобы использовать его для сравнения. Параметр reverse=True сортирует по убыванию, поэтому студент с самым высоким баллом оказывается первым. Исходный список students не меняется.
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Упражнения для практики
Попробуйте изменить код по подсказкам ниже. Если менять код и смотреть на результат, урок запомнится гораздо лучше, чем при простом чтении.
- Измените входные данные и предскажите результат до запуска.
- Добавьте проверку пустых или неверных данных.
- Вынесите обработку в отдельную функцию и проверьте её на нескольких наборах данных.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
- Медиана списка Найдите среднее значение списка после сортировки. Легко
- Второе по величине значение Найдите второе по величине уникальное значение. Легко