English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основные курсы Python

Управление потоком Python

Функции Python

Типы данных Python

Операции с файлами Python

Объекты и классы Python

Даты и время Python

Продвинутые знания Python

Руководство по Python

Метод использования sorted() в Python и примеры

Внутренние функции Python

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

Функция sorted() возвращает отсортированный список в определенном порядке (По возрастаниюИлиПо убыванию) сортирует предоставленные итерируемые элементы.

Синтаксис sorted():

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

Параметры sorted()

Функция sorted() может использовать до трех параметров:

  • iterable- последовательность (Строка,Тупл,Список) или множество (Множество,Словарь,Замороженный набор) или любой другой итератор.

  • reverse (опционально) - если True, то отсортированный список будет обратным (или по убыванию). Если не предоставлено, то по умолчанию False.

  • key (опционально) - функцию для сравнения ключей для сортировки. По умолчанию None.

Пример 1: Сортировка строк, списков и туплей

# список
py_list = ['e', 'a', 'u', 'o', 'i']
print(sorted(py_list))
# строка 
py_string = 'Python'
print(sorted(py_string))
# тупл
py_tuple = ('e', 'a', 'u', 'o', 'i')
print(sorted(py_tuple))

Результат вывода

['a', 'e', 'i', 'o', 'u']
['P', 'h', 'n', 'o', 't', 'y']
['a', 'e', 'i', 'o', 'u']

Обратите внимание:Список также имеетsort()Метод, который выполняется так же, как и sort(), но единственным отличием является то, что метод sort() не возвращает никакого значения и изменяет исходный список.

Пример 2: Сортировка по убыванию: множество, словарь и замороженный набор

Функция sorted() принимает опциональный параметр reverse.

Настройка reverse = True для сортировки итерируемого объекта в порядке iteration.

# set
py_set = {'e', 'a', 'u', 'o', 'i'}
print(sorted(py_set, reverse=True))
# Dictionary
py_dict = {'e': 1, 'a': 2, 'u': 3, 'o': 4, 'i': 5}
print(sorted(py_dict, reverse=True))
# Frozen set
frozen_set = frozenset(('e', 'a', 'u', 'o', 'i'))
print(sorted(frozen_set, reverse=True))

Результат вывода

['u', 'o', 'i', 'e', 'a']
['u', 'o', 'i', 'e', 'a']
['u', 'o', 'i', 'e', 'a']

Ключевые параметры sorted() в Python

Если вы хотите использовать свою реализацию для сортировки, то функция sort() также принимает ключевую функцию в качестве опционального параметра.

Сортировка данных можно выполнять по результатам ключевой функции.

sorted(iterable, key=len)

len() — это встроенная функция Python, используемая для вычисления длины объекта.

Список сортируется по длине элементов (от наименьшего к наибольшему)

Пример 3: Сортировка списка с помощью sorted() с ключевой функцией

# Сортировка по второму элементу
def take_second(elem):
    return elem[1]
# Случайный список
random = [(2, 2), (3, 4), (4, 1), (1, 3)]
# Сортировка списка по ключу
sorted_list = sorted(random, key=take_second)
# Печать списка
print('Сортированный список:', sorted_list)

Результат вывода

Сортированный список: [(4, 1), (2, 2), (1, 3), (3, 4)]

Внутренние функции Python