sorted
Возвращает новый отсортированный список, составленный из элементов итерирующегося объекта.
sorted(iterable[, key][, reverse])
-> list
iterable -- Объект, поддерживающий итерирование, элементы которого требуется упорядочить.
-py3.0 cmp=None -- Ожидается в форме именованного аргумента. Функция, принимающая аргументами два стоящих рядом элемента, которая должна вернуть отрицательное число (если первый меньше второго), нуль (если равны) и положительное (если первый больше второго). Например: cmp=lambda x,y: cmp(x.lower(), y.lower()). Использование сочетаний key + reverse намного быстрее эквивалентной cmp-функции из-за того, что в первом случае обращение к каждому из элементов происходит единожды, а во втором по несколько раз.
key=None -- Ожидается в форме именованного аргумента. Функция, принимающая аргументом элемент, используемая для получения из этого элемента значения для сравнения его с другими. None - сравнить элементы напрямую. Например: key=str.lower.
reverse=False -- Ожидается в форме именованного аргумента. Флаг, указывающий следует ли производить сортировку в обратном порядке.
-py3.0 cmp=None -- Ожидается в форме именованного аргумента. Функция, принимающая аргументами два стоящих рядом элемента, которая должна вернуть отрицательное число (если первый меньше второго), нуль (если равны) и положительное (если первый больше второго). Например: cmp=lambda x,y: cmp(x.lower(), y.lower()). Использование сочетаний key + reverse намного быстрее эквивалентной cmp-функции из-за того, что в первом случае обращение к каждому из элементов происходит единожды, а во втором по несколько раз.
key=None -- Ожидается в форме именованного аргумента. Функция, принимающая аргументом элемент, используемая для получения из этого элемента значения для сравнения его с другими. None - сравнить элементы напрямую. Например: key=str.lower.
reverse=False -- Ожидается в форме именованного аргумента. Флаг, указывающий следует ли производить сортировку в обратном порядке.
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)]
Сортировка при помощи данной функции является стабильной — гарантирует неизменность расположения равных между собой элементов. Такое поведение полезно при сортировке в несколько проходов (например, сортировка по отделу и уровню заработной платы).
На заметку
Используйте functools.cmp_to_key() для преобразования функции, использующей cmp (старый стиль) в использующую key (новый стиль).
Синонимы поиска: sorted, сортировка
В разделе «Встроенные функции»:
abs
all
any
apply
ascii
bin
callable
chr
classmethod
cmp
compile
delattr
dir
divmod
enumerate
eval
exec
filter
format
getattr
globals
hasattr
hash
help
hex
id
input
isinstance
issubclass
iter
len
locals
map
max
min
next
oct
open
ord
pow
print
raw_input
reduce
repr
reversed
round
setattr
staticmethod
sum
super
unichr
vars
zip
На заметку
Зарегистрированные пользователи могут публиковать свои мнения относительно Книг, Видео, Статей других авторов и прочего в разделе Обсуждений.