Функция sorted() в Python – TipsMake.com
н .
Синтаксис функции sorted()
отсортировано (đối tượng, ключ = нет, обратный = ложь)
Параметры функции sorted()
sorted() может иметь до 3 параметров:
- Объект: Каждая строка (строка, список) или коллекция (набор, словарь, ) или любой объект.
- reverse (необязательно): Если значение True, список будет отсортирован в обратном (или убывающем) порядке. Если не объявлено, значение по умолчанию — False.
- key (необязательно): Если присутствует, функция sorted() сравнивает значение с key, а затем сортирует. Значение по умолчанию — None.
Преимущества функции sorted() в Python
- Простота использования: Функция sorted очень проста в использовании. Ей нужен только один обязательный параметр, который может повторяться, а другие параметры, включая key и reverse, могут использоваться для настройки сортировки.
- Неизменяемость: функция sorted в Python создает новый отсортированный список, который не изменяет переданную строку. Эта функция может быть полезна, когда мы хотим, чтобы данные были отсортированы и не влияли на исходные данные.
- Настройка классификации: параметр key может использоваться для установки критериев классификации. Используя эту функцию, вы можете легко настроить процесс сортировки. Кроме того, программисты могут также использовать параметр reverse для обратного порядка данных.
Применения функции sorted() в Python:
- Анализ данных помогает пользователям легко создавать обзорные отчеты.
- Настройте классификацию в соответствии с определенными критериями.
- Отображение результатов в определенном порядке.
Пример 1: Сортировка строк, лиш и трубок
Пожалуйста, смотрите следующий код:
# Сохранить список py_list = ('q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g') print(sorted(py_list)) # Сохранить строку py_string = 'TipsMake' print(sorted(py_string)) # Сохранить кортеж py_tuple = ('q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g') print(sorted(py_tuple))
При запуске программы получены следующие результаты:
('а', 'а', 'г', 'и', 'м', 'н', 'н', 'ц', 'р', 'т', 'у') ('Q', 'а', 'а', 'г', 'и', 'м', 'н', 'н', 'р', 'т', 'у') ('а', 'а', 'г', 'и', 'м', 'н', 'н', 'ц', 'р', 'т', 'у')
Примечание: Список также имеет функцию sort(), которая работает аналогично функции sorted(). Единственное отличие состоит в том, что функция sort() не возвращает никакого значения и изменяет исходный список.
Пример 2: Сортировка по убыванию
Функция sorted() имеет обратный параметр, и если установить reverse=True, список будет отсортирован в порядке убывания.
Рассмотрим следующие строки кода:
# Скопировать набор py_set = {'q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g'} print(sorted(py_set, reverse=True)) # Скопировать словарь py_dict = {'e': 1, 'a': 2, 'u': 3, 'o': 4, 'i': 5} print(sorted(py_dict, reverse=True)) # Скопировать замороженный набор frozen_set = frozenset(('q', 'u', 'a', 'n', 't', 'r', 'i', 'm', 'a', 'n', 'g')) печать(отсортировано(замороженный_набор, обратный=Истина))
При запуске программы возвращаются следующие результаты:
('u', 't', 'r', 'q', 'n', 'm', 'i', 'g', 'a') ('u', 'o', 'i', 'e', 'a') ('u', 't', 'r', 'q', 'n', 'm', 'i', 'g', 'a')
Ключевой параметр функции sorted() в Python
Если вы хотите отсортировать данные в собственном стиле, функция sorted() также принимает ключ в качестве необязательного параметра.
Вы можете сортировать объекты на основе возвращаемого значения key. Например:
сортировано(итерируемо, ключ=len)
Здесь len() — это встроенная функция Python, которая подсчитывает длину объекта.
Список сортируется по длине элемента, от наименьшего числа к наибольшему.
Пример 3: Сортировка списка с помощью функции sorted(), содержащей ключ
Пожалуйста, посмотрите код:
# Xắp xếp dựa trên phần tử thứ 2 def take_ Second(elem): return elem(1) # list ngẫu nhiên random = ((2, 2), (3, 4), (4, 1), (1, 3) ) # sắp xếp list với key sorted_list = sorted(random, key=take_ Second) # hiển thị list print('List đã được sắp xếp:', sorted_list)
После запуска программы получены следующие результаты:
Список đã được sắp: ((4, 1), (2, 2), (1, 3), (3, 4))
Пример 4: Сортировка с несколькими ключами
Изначально у нас есть такой список:
# List kết quả thi học kỳ của các sinh viên # Các thành phần của list: (Tên sinh viên, Điểm số đạt được theo Thang 100, Tuổi) участника_list = ('Lê Ан', 50, 18), ('Трун Бинь, 75, 12), («Трун Там», 75, 20), («Тхань Лам», 90, 22), («Ву Лан», 45, 12))
Теперь нам нужно отсортировать список учеников по баллам от большего к меньшему. В этом случае, если у учеников одинаковый балл, то младший ученик будет помещен вперед.
Мы можем сделать это с помощью функции sorted() с несколькими ключами, поместив числа в кортеж.
Два кортежа можно сравнить, сравнивая элементы от первого до последнего. Если есть равный фактор, будет сравниваться второй фактор.продолжается до конца.
>>> (1,3) > (1, 4) Ложь >>> (1, 4) >> (1, 4, 1)
Используя этот подход, мы можем построить код сравнения следующим образом:
# List kết quả thi học kỳ của các sinh viên # Các thành phần của list: (Tên sinh viên, Điểm số đạt được theo Thang 100, Tuổi) участника_list = ('Lê Ан', 50, 18), ('Трун Бинь', 75, 12), ('Trần Tâm', 75, 20), ('Тхань Лам', 90, 22), ('Vũ Lan', 45, 12)) def sorter(item): ошибка = 100 – возраст предмета(1) = предмет(2) возврат (ошибка, возраст) sorted_list = sorted(participant_list, key=sorter) печать (sorted_list)
При запуске программы получены следующие результаты:
(('Тхань Лам', 90, 22), ('Trần Bình', 75, 12), ('Trần Tâm', 75, 20), ('Lê An', 50, 18), ('Vũ Lan' , 45, 12)
Поскольку функция сортировки короткая и требует только одной строки, лямбда-функция используется внутри ключа, а не передается как отдельная функция.
Приведенный выше код можно переписать с использованием лямбда-функции следующим образом:
# List kết quả thi học kỳ của các sinh viên # Các thành phần của list: (Tên sinh viên, Điểm số đạt được theo Thang 100, Tuổi) участника_list = ('Lê Ан', 50, 18), ('Трун Бинь', 75, 12), ('Trần Tâm', 75, 20), ('Тхань Лам', 90, 22), ('Ву Лан', 45, 12)) sorted_list = sorted(participant_list, key=lambda элемент: (100-элемент(1), элемент(2))) печать(сортированный_список)
Полученные результаты по-прежнему таковы:
(('Тхань Лам', 90, 22), ('Trần Bình', 75, 12), ('Trần Tâm', 75, 20), ('Lê An', 50, 18), ('Vũ Lan' , 45, 12)
Надеюсь, вы скоро познакомитесь с функцией sorted() в Python и не забудьте посетить указанный ниже веб-сайт, чтобы узнать больше о полезных функциях Python.
Лесли Монтойя
Обновление 17 августа 2024 г.