
В Python существует множество методов сортировки, однако функция sorted() является одной из наиболее удобных и распространенных.
sorted()позволяет отсортировать объекты разных типов, включая списки, кортежи, словари и другие итерируемые объекты.
В этой статье мы рассмотрим основные возможности функции sorted() и примеры ее использования.
Синтаксис функции sorted() выглядит следующим образом:
sorted(iterable, key=None, reverse=False)где:
iterable (обязательный): коллекция данных, которую нужно отсортировать.key (опциональный): необязательный параметр, который определяет функцию для извлечения ключа для каждого элемента в коллекции. По умолчанию, функция сортирует элементы по возрастанию, но можно указать собственную функцию, которая изменит порядок сортировки.reverse (опциональный): необязательный параметр, который задает порядок сортировки. Если установлено значение True, функция будет сортировать элементы в обратном порядке.Функция sorted() не изменяет исходный итерируемый объект, а возвращает отсортированный список или другой итерируемый объект. Если нужно отсортировать и изменить исходный объект, можно воспользоваться методом sort(), доступным для списков.
numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
#[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]В данном примере функция sorted() применена к списку чисел. Она отсортировала его по возрастанию и вернула новый список, который был сохранен в переменной sorted_numbers.
Пример сортировки списка с использованием параметра key:
words = ['banana', 'cherry', 'apple', 'date']
sorted_words = sorted(words, key=len)
print(sorted_words)
#['date', 'apple', 'banana', 'cherry']Здесь функция sorted() была применена к списку строк. Мы отсортировали его по длине строк, используя функцию len() в качестве ключа сортировки. Таким образом, на выходе мы получили список, где строки отсортированы по возрастанию их длины.
fruit_prices = {'apple': 0.5, 'banana': 0.25, 'cherry': 1.0, 'date': 0.75}
sorted_fruit = sorted(fruit_prices)
print(sorted_fruit)
#['apple', 'banana', 'cherry', 'date']Используем функцию sorted() для сортировки ключей словаря fruit_prices. Мы получили отсортированный список ключей, который сохранен в переменной sorted_fruit.
Кроме того, можно использовать параметр key для сортировки словаря по значению, а не по ключу. Для этого можно использовать метод dict.items() для получения пар (ключ, значение) словаря и передать лямбда-функцию, которая будет возвращать значение для каждой пары. Например:
fruit_prices = {'apple': 0.5, 'banana': 0.25, 'cherry': 1.0, 'date': 0.75}
sorted_fruit = sorted(fruit_prices.items(), key=lambda x: x[1])
print(sorted_fruit)
#[('banana', 0.25), ('apple', 0.5), ('date', 0.75), ('cherry', 1.0)]Метод dict.items() преобразовал словарь в список кортежей (ключ, значение), которые мы затем сортируем по значению, используя лямбда-функцию.
my_tuple = (3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5)
sorted_tuple = sorted(my_tuple)
print(sorted_tuple)
#[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]Здесь мы создали кортеж my_tuple, содержащий несколько элементов, а затем использовали функцию sorted() для создания отсортированной версии этого кортежа. Результатом является новый отсортированный кортеж sorted_tuple.
Также можно отсортировать список кортежей по их второму элементу:
tuples = [(1, 5), (3, 2), (2, 3), (4, 1)]
sorted_tuples = sorted(tuples, key=lambda x: x[1])
print(sorted_tuples)
#[(4, 1), (3, 2), (2, 3), (1, 5)]В данном примере мы использовали лямбда-функцию, которая принимает каждый кортеж и возвращает его второй элемент для сравнения.
Для сортировки множества, можно передать его в качестве аргумента функции sorted():
my_set = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}
sorted_set = sorted(my_set)
print(sorted_set)
#[1, 2, 3, 4, 5, 6, 9]Обратите внимание, что дублирующиеся элементы были удалены, так как множество не может содержать повторяющиеся элементы.
При сортировке строки, функция sorted() возвращает отсортированный список символов строки.
my_string = "python"
sorted_string = sorted(my_string)
print(sorted_string)
#['h', 'n', 'o', 'p', 't', 'y']Функция sorted() возвращает список символов, а не строку. Если вы хотите получить отсортированную строку, то можно объединить отсортированный список символов обратно в строку, используя метод join().
Функция sorted() может принимать несколько параметров, включая параметр reverse. Этот параметр управляет порядком сортировки элементов в обратном направлении.
Когда reverse=True, элементы сортируются в порядке убывания, а когда reverse=False (это значение по умолчанию), элементы сортируются в порядке возрастания.
Например, вот как можно отсортировать список чисел в порядке убывания, используя sorted() и параметр reverse:
numbers = [5, 2, 8, 1, 9]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)
#[9, 8, 5, 2, 1]Функция sorted() в Python предоставляет мощный инструмент для сортировки различных типов итерируемых объектов. Она позволяет использовать различные методы сравнения, включая использование пользовательских функций, и может быть использована для сортировки не только списков, но и других итерируемых объектов, таких как кортежи и словари.
Содержание: