Как работает sorted в python: полное руководство с примерами 🐍

sorted() в Python является встроенной функцией для сортировки элементов в итерируемом объекте или контейнере. Она возвращает новый отсортированный список, не изменяя исходный.

Функция sorted() может принимать несколько аргументов, но основные два - это итерируемый объект и необязательный параметр key, который определяет функцию, используемую для получения ключа сортировки для каждого элемента.

Вот пример использования sorted() для сортировки списка целых чисел:


numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

Результатом будет [1, 1, 2, 3, 4, 5, 5, 6, 9].

Вы также можете использовать параметр key для определения пользовательской функции сортировки. Например, для сортировки списка строк по их длине:


fruits = ['apple', 'banana', 'cherry', 'date']
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)

Результатом будет ['date', 'apple', 'cherry', 'banana'], так как 'date' имеет самую длинную длину среди всех строк.

Детальный ответ

Как работает sorted в Python?

Функция sorted() в Python используется для сортировки элементов в списке или итерируемом объекте. Она возвращает новый отсортированный список, оставляя исходный список неизменным. Позвольте мне детально объяснить, как работает эта функция.

Начнем с синтаксиса:

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

Здесь:

  • iterable - список, кортеж, множество или любой другой итерируемый объект, который нужно отсортировать.
  • key (необязательный) - функция, используемая для создания пользовательского порядка сортировки. По умолчанию равен None.
  • reverse (необязательный) - если значение равно True, то элементы сортируются в обратном порядке. По умолчанию равно False.

Теперь давайте рассмотрим основные принципы работы sorted():

  1. Функция sorted() создает новый список, содержащий отсортированные элементы из исходного списка или итерируемого объекта. Исходный список остается без изменений.
  2. Если не указан аргумент key, элементы сортируются с использованием стандартного порядка сортировки в Python (например, числа сортируются по возрастанию, строки сортируются в лексикографическом порядке).
  3. Если указан аргумент key, он должен быть функцией, которая принимает один аргумент и возвращает ключ сортировки для каждого элемента. Функция key позволяет определять пользовательский порядок сортировки.
  4. Если аргумент reverse равен True, элементы сортируются в обратном порядке (например, по убыванию для чисел или в обратном лексикографическом порядке для строк).

Давайте рассмотрим несколько примеров кода, чтобы проиллюстрировать работу функции sorted():

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

numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)

Вывод:

 [1, 1, 2, 3, 4, 5, 5, 6, 9]

Этот пример сортирует список чисел [3, 1, 4, 1, 5, 9, 2, 6, 5] в порядке возрастания и выводит отсортированный список [1, 1, 2, 3, 4, 5, 5, 6, 9].

Пример 2: Сортировка списка строк

fruits = ['apple', 'banana', 'cherry', 'date']
sorted_fruits = sorted(fruits, reverse=True)
print(sorted_fruits)

Вывод:

['date', 'cherry', 'banana', 'apple']

В этом примере список строк ['apple', 'banana', 'cherry', 'date'] сортируется в обратном лексикографическом порядке (по убыванию), и выводится отсортированный список ['date', 'cherry', 'banana', 'apple'].

Пример 3: Сортировка списка словарей по ключу

students = [
    {'name': 'Alice', 'age': 20},
    {'name': 'Bob', 'age': 18},
    {'name': 'Charlie', 'age': 22}
]
sorted_students = sorted(students, key=lambda student: student['age'])
print(sorted_students)

Вывод:

[
    {'name': 'Bob', 'age': 18},
    {'name': 'Alice', 'age': 20},
    {'name': 'Charlie', 'age': 22}
]

В этом примере список словарей students сортируется по ключу 'age'. Мы используем аргумент key с лямбда-функцией для извлечения значения ключа 'age' для каждого студента при сортировке. Результатом является отсортированный список словарей по возрастанию.

Теперь, когда вы понимаете, как работает функция sorted() в Python, вы можете использовать ее для сортировки списков и других итерируемых объектов в своих программах.

Видео по теме

53 Сортировка коллекций в Python. Метод sort и функция sorted

#59. Особенности сортировки через sort() и sorted() | Python для начинающих

Python 3 #22: сортировка sort() и sorted(), сортировка по ключам

Похожие статьи:

Как получить год из datetime в Python? ✨🐍📅

🎮 Как создать текстовую игру на Python: подробное руководство для начинающих!

Как установить Python на Windows 11: пошаговое руководство с эмодзи

Как работает sorted в python: полное руководство с примерами 🐍

🔧Как настроить Visual Studio Code для Python?

🔎 Как выбрать случайный элемент из списка Python? 🐍🔀

🔎 Что делает def в Python? Узнайте работу функции def в Python с примерами