Функция sorted
в Python используется для сортировки элементов в итерируемом объекте. Она возвращает новый отсортированный список из элементов итерируемого объекта. Функция sorted
является гибкой и позволяет задавать пользовательские ключи для сортировки, а также направление сортировки.
Содержание
- Синтаксис
- Параметры
- Возвращаемое значение
- Примеры использования
- Пример 1: Сортировка списка чисел
- Пример 2: Сортировка строки
- Пример 3: Сортировка списка кортежей по второму элементу
- Пример 4: Сортировка списка словарей по значению определенного ключа
- Пример 5: Обратная сортировка
- Пример 6: Сортировка по длине строк
- Пример 7: Сортировка списка имен с учетом регистра
- Важные замечания
Синтаксис
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']
Важные замечания
- Функция
sorted
не изменяет исходный итерируемый объект: Она возвращает новый отсортированный список, оставляя оригинальный объект без изменений. - Использование
key
для сложной сортировки:key
позволяет использовать функцию или лямбда-выражение для сложной сортировки, например, по нескольким критериям. - Стабильность сортировки: Сортировка в Python стабильна, что означает, что элементы с одинаковыми ключами остаются в том порядке, в котором они были в оригинальном списке.