list.sort()
Метод sort() сортирует список на месте по возрастанию. Сортировка стабильна — порядок равных элементов сохраняется. Через параметры можно задать функцию-ключ и развернуть направление. В отличие от встроенной sorted(), которая возвращает новый список, sort() меняет исходный и возвращает None.
Сигнатура
list.sort(*, key=None, reverse=False)
Параметры
key— функция от одного аргумента, применяемая к каждому элементу перед сравнением. По умолчаниюNone— сравниваются сами элементы.reverse— еслиTrue, сортирует по убыванию. По умолчаниюFalse.
Оба параметра передаются только по имени (после *).
Возвращаемое значение
None. Список модифицируется на месте.
Примеры использования
Пример 1. Сортировка по возрастанию.
readings = [23, 21, 25, 22, 24]
readings.sort()
print(readings)
[21, 22, 23, 24, 25]
Пример 2. Сортировка по убыванию.
scores = [78, 95, 62, 88, 91]
scores.sort(reverse=True)
print(scores)
[95, 91, 88, 78, 62]
Пример 3. Сортировка по ключу — длине строки.
words = ["ESP32", "Arduino", "Pi", "STM32"]
words.sort(key=len)
print(words)
['Pi', 'ESP32', 'STM32', 'Arduino']
Пример 4. Сортировка списка словарей по полю.
students = [
{"name": "Айдос", "score": 78},
{"name": "Бахыт", "score": 95},
{"name": "Дина", "score": 88},
]
students.sort(key=lambda s: s["score"], reverse=True)
for s in students:
print(s["name"], s["score"])
Бахыт 95
Дина 88
Айдос 78
Пример 5. sort() vs sorted().
a = [3, 1, 2]
a.sort()
print("после sort:", a)
b = [3, 1, 2]
c = sorted(b)
print("sorted:", c, "исходный:", b)
после sort: [1, 2, 3]
sorted: [1, 2, 3] исходный: [3, 1, 2]
См. также
list.reverse() — разворот списка
list.copy() — копирование перед сортировкой
list.extend() — расширение списка
Примечание
Лицензия и источники
Техническое описание метода адаптировано из официальной документации Python (https://docs.python.org), доступной под Python Software Foundation License Version 2. Перевод на русский, примеры использования и пояснения — © AlashEd Wiki.