sorted()
Функция sorted() возвращает новый отсортированный список из элементов
любого итерируемого объекта. В отличие от метода list.sort(),
исходная коллекция не изменяется, а на вход можно подать кортеж,
множество, словарь и так далее.
Сигнатура
sorted(iterable, /, *, key=None, reverse=False)
Параметры:
iterable— любой итерируемый объект.key— функция одного аргумента, возвращающая ключ для сравнения (по умолчанию сравниваются сами элементы).reverse— еслиTrue, сортировка идёт по убыванию.
Возвращает: новый список list.
Примеры
Простая сортировка чисел и строк:
print(sorted([5, 1, 4, 2, 3]))
print(sorted("python"))
[1, 2, 3, 4, 5]
['h', 'n', 'o', 'p', 't', 'y']
Сортировка по убыванию:
scores = [78, 92, 65, 100, 88]
print(sorted(scores, reverse=True))
[100, 92, 88, 78, 65]
Сортировка по длине слова через key:
words = ["алгоритм", "цикл", "переменная", "класс"]
print(sorted(words, key=len))
['цикл', 'класс', 'алгоритм', 'переменная']
Сортировка списка словарей по полю:
students = [
{"name": "Айгуль", "score": 87},
{"name": "Бахыт", "score": 92},
{"name": "Серик", "score": 75},
]
top = sorted(students, key=lambda s: s["score"], reverse=True)
for s in top:
print(s["name"], s["score"])
Бахыт 92
Айгуль 87
Серик 75
Стабильность сортировки — порядок равных элементов сохраняется:
data = [("a", 2), ("b", 1), ("c", 2), ("d", 1)]
print(sorted(data, key=lambda x: x[1]))
[('b', 1), ('d', 1), ('a', 2), ('c', 2)]
См. также
Примечание
Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.