logo

sorted(iterable, /, *, key=None, reverse=False)

Возвращает новый отсортированный список, составленный из элементов итерирующегося объекта.

Параметры

  • iterable: Объект, поддерживающий итерирование, элементы которого требуется упорядочить.
  • cmp=None: Ожидается в форме именованного аргумента. Функция, принимающая аргументами два стоящих рядом элемента, которая должна вернуть отрицательное число (если первый меньше второго), нуль (если равны) и положительное (если первый больше второго). Например: cmp=lambda x,y: cmp(x.lower(), y.lower()). Использование сочетаний key + reverse намного быстрее эквивалентной cmp-функции из‑за того, что в первом случае обращение к каждому из элементов происходит единожды, а во втором по несколько раз.
  • key=None: Ожидается в форме именованного аргумента. Функция, принимающая аргументом элемент, используемая для получения из этого элемента значения для сравнения его с другими. None — сравнить элементы напрямую. Например: key=str.lower.
  • reverse=False: Ожидается в форме именованного аргумента. Флаг, указывающий следует ли производить сортировку в обратном порядке.

Возвращаемое значение

Функция sorted() возвращает отсортированный список.

Примеры

my_dict = {'a': 3, 'c': 1, 'b': 2}
# Упорядочим элементы словаря по ключам.
sorted(my_dict.items(), key=lambda item: item[0])
# [('a', 3), ('b', 2), ('c', 1)]
# Упорядочим элементы словаря по значениям.
sorted(my_dict.items(), key=lambda item: item[1])
# [('c', 1), ('b', 2), ('a', 3)]
my_dict = {'a': 3, 'c': 1, 'b': 2, '0': 3}
# Упорядочим по значениям и ключам.
sorted(my_dict.items(), key=lambda item: (item[1], item[0]))
# [('c', 1), ('b', 2), ('0', 3), ('a', 3)]
# А теперь по значениям по убыванию и ключам.
sorted(my_dict.items(), key=lambda item: (-item[1], item[0]))
# [('0', 3), ('a', 3), ('b', 2), ('c', 1)]

Сортировка при помощи данной функции является стабильной — гарантирует неизменность расположения равных между собой элементов. Такое поведение полезно при сортировке в несколько проходов (например, сортировка по отделу и уровню заработной платы).

Python с нуля. Освойте с Виртуальным ИИ-помощником!

  • Теоретические уроки и практические задачи
  • Пишите и проверяйте код прямо в браузере
  • Виртуальный ИИ-помощник поможет в любое время дня и ночи
  • Сообщество учеников для взаимопомощи и обмена опытом
  • 200 000+ зарегистрированных участников. Присоединяйтесь!