Как работает функция sorted в Python: полное руководство и примеры
numbers = [4, 2, 7, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # Выводит: [1, 2, 4, 5, 7]
Пример 2: Сортировка строкового списка
fruits = ['apple', 'banana', 'cherry', 'orange']
sorted_fruits = sorted(fruits)
print(sorted_fruits) # Выводит: ['apple', 'banana', 'cherry', 'orange']
Можно также использовать функцию сравнения для определения пользовательского порядка сортировки. Например, для сортировки по длине строк:
names = ['Alice', 'Bob', 'Charlie', 'David']
sorted_names = sorted(names, key=len)
print(sorted_names) # Выводит: ['Bob', 'Alice', 'David', 'Charlie']
Детальный ответ
Что делает функция sorted в Python
Функция sorted() является встроенной функцией в Python, которая используется для сортировки элементов итерируемого объекта в определенном порядке. Она создает новый список (или любой другой итерируемый объект) с отсортированными элементами исходного объекта, не изменяя сам исходный объект.
Синтаксис:
sorted(iterable, key=None, reverse=False)
Где:
- iterable - итерируемый объект, который нужно отсортировать. Это может быть список, кортеж, строка, словарь или любой другой итерируемый объект.
- key (необязательный) - функция, которая принимает элемент из итерируемого объекта и возвращает значение, по которому происходит сортировка. По умолчанию используется None, что означает сортировку по значениям элементов.
- reverse (необязательный) - параметр, указывающий, нужно ли сортировать по убыванию. По умолчанию используется False, что означает сортировку по возрастанию.
Примеры использования:
Пример 1:
numbers = [3, 1, 4, 1, 5, 9, 2]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
В этом примере мы имеем список numbers, содержащий неупорядоченные числа. Мы используем функцию sorted() для сортировки чисел в порядке возрастания. Результат сортировки сохраняется в переменной sorted_numbers. Затем мы выводим отсортированный список.
Результат:
[1, 1, 2, 3, 4, 5, 9]
Пример 2:
fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']
sorted_fruits = sorted(fruits, key=len)
print(sorted_fruits)
В этом примере у нас есть список фруктов. Мы используем функцию sorted() для сортировки фруктов по длине их названий. Мы передаем функцию len в качестве значения параметра key. Результат сортировки сохраняется в переменной sorted_fruits. Мы выводим отсортированный список фруктов.
Результат:
['date', 'apple', 'banana', 'cherry', 'elderberry']
В обоих примерах функция sorted() создает новый список с отсортированными элементами в заданном порядке. Исходные списки numbers и fruits не изменяются.
Можно использовать функцию sorted() для сортировки различных типов данных, включая числа, строки и пользовательские объекты. При необходимости можно задать собственную функцию для определения порядка сортировки с помощью параметра key.