Функция sorted( ) в Python

Обложка к статье "Функция sorted( ) в Python"

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

Синтаксис

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

Параметры

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

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

Функция sorted возвращает новый список с отсортированными элементами из исходного итерируемого объекта.

Примеры использования

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

numbers = [4, 1, 3, 5, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Вывод: [1, 2, 3, 4, 5]

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

string = "hello"
sorted_string = sorted(string)
print(sorted_string)  # Вывод: ['e', 'h', 'l', 'l', 'o']

Пример 3: Сортировка списка кортежей по второму элементу

tuples = [(1, 'b'), (2, 'a'), (3, 'c')]
sorted_tuples = sorted(tuples, key=lambda x: x[1])
print(sorted_tuples)  # Вывод: [(2, 'a'), (1, 'b'), (3, 'c')]

Пример 4: Сортировка списка словарей по значению определенного ключа

students = [
    {'name': 'Alice', 'grade': 90},
    {'name': 'Bob', 'grade': 75},
    {'name': 'Charlie', 'grade': 85}
]

sorted_students = sorted(students, key=lambda x: x['grade'])
print(sorted_students)
# Вывод: [{'name': 'Bob', 'grade': 75}, {'name': 'Charlie', 'grade': 85}, {'name': 'Alice', 'grade': 90}]

Пример 5: Обратная сортировка

numbers = [4, 1, 3, 5, 2]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)  # Вывод: [5, 4, 3, 2, 1]

Пример 6: Сортировка по длине строк

words = ['apple', 'banana', 'cherry', 'date']
sorted_words = sorted(words, key=len)
print(sorted_words)  # Вывод: ['date', 'apple', 'banana', 'cherry']

Пример 7: Сортировка списка имен с учетом регистра

names = ['Alice', 'bob', 'Charlie', 'dave']
sorted_names = sorted(names, key=lambda s: s.lower())
print(sorted_names)  # Вывод: ['Alice', 'bob', 'Charlie', 'dave']

Важные замечания

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

Оцените статью
( Пока оценок нет )
Обучение Python
Добавить комментарий