Функция sorted() в Python очень похожа на метод .sort() у списка, но если метод sort() работает только со списком, то функция sorted() работает с любым итерируемым объектом. Она так же выполняет задачу сортировки объекта, но вне зависимости от сортируемого объекта всегда будет возвращать тип данных список.
Параметры sorted(iterable, key=None, reverse=False)
iterable — объект, который вы хотите отсортировать
key — функция или выражение которое будет применено к каждому элементу итерируемого объекта, и сортировка будет выполнена по результату сравнения работы указанной функции.
reverse — направление сортировки
Моё самое любимое применение этой функции, когда требуется отсортировать элементы словаря по значению ключа. Предположим у нас есть словарь.
films = {'Matrix': 8.2, 'Lord of the ring': 8.5, 'Harry Potter': 8.1}
И нам необходимо отсортировать словарь по рейтингу фильмов, то есть по значению ключа. Для этого нам потребуется следующий код в одну строчку.
sorted_films = dict(sorted(films.items(), key=lambda item: item[1], reverse=True))
Всё! Теперь у нас есть отсортированный словарь с рейтингами фильмов, начиная с самого популярного.