Python Сортировка списка() с примерами
Что такое метод sort() в Python?
Функция сортировки по Python помогает отсортировать список по возрастанию или убыванию. Его можно использовать для сортировки числового списка, кортежей и списка строк. Он не создает отдельный список, а изменяет или сортирует оригинал.
Синтаксис метода сортировки в Python
Функция сортировки имеет следующий синтаксис, как указано ниже: –
List.sort(key=…, reverse=…)
Функция сортировки имеет два дополнительных параметра, перечисленных ниже: –
- Ключ: — используется для сортировки функции на основе критерия сортировки.
- Reverse: – принимает значение либо true, либо false. Если это правда, эта пользовательская функция сортирует список в порядке убывания.
Сортировка списка по возрастанию с помощью метода Sort в Python
In Python, функция сортировки по умолчанию сортирует любой список в порядке возрастания. В списке в порядке возрастания наименьшее значение находится слева, а наибольшее значение — справа.
Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.
Python код:
base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)
Вывод:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Пояснение к коду:
- Приведенный выше список представляет собой случайно определенный список строк.
- Функция сортировки Python помогает сортировать случайный список в порядке возрастания: наименьшая длина слова находится слева, а наибольшая длина слова — справа.
Сортировка списка по убыванию
Функция сортировки также позволяет сортировать список в порядке убывания. Его можно определить как порядок где список начинается с самого высокого значения и заканчивается самым низким значением.
Параметру обратного функции сортировки присваивается значение true, чтобы отсортировать список в порядке убывания.
Давайте посмотрим на приведенный ниже пример: –
Python код:
base_list=[100,600,400,8000,50]
base_list.sort()
print("the base list after sorting is",base_list)
# Reverse Order
base_list.sort(reverse=True)
print("the base list after REVERSE sorting is",base_list)
Вывод:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Примечание. Убедитесь, что присвоение слова «True» обратному параметру начинается с заглавной буквы «T», чтобы избежать ошибок во время выполнения.
Сортировка списка кортежей с помощью метода Sort в Python
Python Кортеж представляют собой коллекции неизменяемых элементов, следующих в упорядоченной последовательности. PythonФункция sort может использоваться для сортировки списка кортежей с использованием настраиваемой функции и лямбда-выражения.
Пользовательскую функцию можно создать без имени и представить с помощью лямбда-выражения. Ниже приведен синтаксис лямбда-выражения: –
Синтаксис:
Lambda arguments: expression
Приведенный выше синтаксис эквивалентен приведенному ниже коду Python:
def name (arguments): return expression
Вот пример кортежа и настраиваемой функции, иллюстрирующий, как функция сортировки с ключевыми параметрами помогает сортировать элементы в кортеже:
Python код:
base_list = [('Alto', 2020, 500),('MSFT', 2022, 300),('Guru99', 2019, 1070)]
def get_key(base_list):
return base_list[2]
base_list.sort(key=get_key,reverse=True)
print("The change in base list is as follows",base_list)
Вывод:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Пояснение к коду:
- Параметрverse определяется как true для сортировки кортежа в порядке убывания.
- Настраиваемая функция принимает второй элемент кортежа.
- Он используется как ключ функции сортировки.
Давайте посмотрим на приведенный ниже пример, в котором используется лямбда-выражение:
Python код:
base_list = [('Alto', 2020, 500),
('MSFT', 2022, 300),
('Guru99', 2019, 1070)]
base_list.sort(key=lambda base_list:base_list[2],reverse=True)
print("The change in base list is as follows",base_list)
Вывод:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Объяснение:
- Лямбда-выражение помогает сортировать элементы кортежа от большего к меньшему, используя ключ в качестве второго элемента кортежа.
- Программа проверит наибольшее значение второго элемента кортежа.
Сортировка элементов списка с использованием Len в качестве ключевого параметра
Len — встроенная функция, определяющая длину элемента. Определенная длина может использоваться для индексации в функции сортировки. Для этого мы назначаем Лена Python Ключевой параметр функции сортировки.
Следующие Python код иллюстрирует, как использовать функцию Len с функцией сортировки.
Python Код:
base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)
Вывод:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Пояснение к коду:
- Длина элемента становится индексом ключевого параметра для упорядочения списка в порядке возрастания.
- Функция Len оценивает длину каждого элемента, присутствующего в базовом списке.
- Он сохраняет самый короткий элемент слева и самый большой элемент справа.
- Здесь слова alto и java имеют длину 4 и располагаются первыми в списке, за ними следует Guru99, длина которого равна 6.
Этот пример иллюстрирует концепцию обратного параметра в функции сортировки, как показано ниже: –
Python Код:
base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)
Вывод:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Сортировка элементов списка с использованием пользовательской функции в качестве ключевого параметра
Вы также можете использовать пользовательскую функцию в качестве ключевого параметра для сортировки списка. Вот пример: –
Python Код:
base_list = [{'Example':'Python','year':1991},{'Example':'Alto','year':2014},{'Example':'Guru99', 'year':1995},
{'Example':'Google','year':1985},{'Example':'Apple','year':2007},{'Example':'Emails','year':2010},]
def get_year(element):
return element['year']
base_list.sort(key=get_year)
print("The base list after sorting using explicit criteria",base_list)
Вывод:
The base list after sorting using explicit criteria [{'Example': 'Google', 'year': 1985}, {'Example': 'Python', 'year': 1991}, {'Example': 'Guru99', 'year': 1995}, {'Example': 'Apple', 'year': 2007}, {'Example': 'Emails', 'year': 2010}, {'Example': 'Alto', 'year': 2014}]
Пояснение к коду:
- Создается пользовательская функция для возврата года.
- Ключевой параметр принимает в качестве критерия определяемую пользователем функцию.
- Функция сортировки упорядочит список в порядке возрастания на основе значения элемента «год».
Разница между методом сортировки и методом сортировки в Python
Прежде чем суммировать различия, давайте разберемся в синтаксисе метода Sorted.
Python Синтаксис:
sorted (list_name, reverse=…., key=..)
Пояснение к коду:
- Функция sorted сортирует список либо по возрастанию, либо по убыванию.
- Функция принимает три параметра, из которых два параметра необязательного типа и один параметр обязательного типа.
- Параметр list_name является обязательным при использовании метода Sorted.
- Метод Sorted может принимать в качестве входных данных итерируемый список любого типа.
- Ключевые параметры и обратные параметры являются необязательными параметрами в методе сортировки Python.
Вот пример использования функции sort и sorted в Python как показано ниже: –
Python код:
#Use of the Sorted method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=sorted(Base_list)
print("the New list using sorted method is",New_list)
#Use of the Sort method
Base_list=[11,10,9,8,7,6]
print("the original list is",Base_list)
New_list=Base_list.sort()
print("the New list using sort method is",New_list)
Вывод:
the original list is [11, 10, 9, 8, 7, 6] the new list using the sorted method is [6, 7, 8, 9, 10, 11] the original list is [11, 10, 9, 8, 7, 6] the new list using the sort method is None
Пояснение к коду:
- Исходный список передается в качестве обязательного параметра для функции сортировки.
- Метод Sorted возвращает новый список помимо исходного списка.
- Поскольку методу sorted не передаются никакие дополнительные параметры, новый список по умолчанию сортируется по возрастанию.
- Функция сортировки не создает новый список.
Ниже приведены основные сходства и различия:
| Сортированная функция | Функция сортировки |
|---|---|
| Сортированная функция в Python — это встроенная функция, которая принимает имя_списка в качестве обязательного параметра. | Функция сортировки не принимает исходный список в качестве параметра. |
| Метод Sorted возвращает новый список | Функция сортировки не возвращает новый список |
| Сортированную функцию следует использовать для итеративных списков. | Функцию сортировки следует использовать для неитерируемых списков. |
| Он не изменяет исходный список и позволяет нам сохранять исходные данные. | Функция сортировки изменяет исходную функцию и, следовательно, занимает меньше места в памяти. |
Когда использовать метод сортировки или метод сортировки?
Давайте рассмотрим пример, который требует сортировки данных о гонках. Программа использует стартовый номер и время в секундах, необходимое для завершения забега.
Python код:
from collections import namedtuple
Base = namedtuple('Runner', 'bibnumber duration')
blist = []
blist.append(Base('8567', 1500))
blist.append(Base('5234', 1420))
blist.append(Base('2344', 1600))
blist.append(Base('2342', 1490))
blist.append(Base('23444', 1620))
blist.append(Base('6674', 1906))
print("original list",blist)
blist.sort(key=lambda x: getattr(x, 'duration'))
top_five_result = blist[:5]
print("Results using sort function",top_five_result)
r_blist=sorted(blist,key=lambda x: getattr(x, 'duration'))
top_five_result = r_blist[:5]
print("Results using sorted function",top_five_result)
Вывод:
original list [Runner(bibnumber='8567', duration=1500), Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='23444', duration=1620), Runner(bibnumber='6674', duration=1906)] Results using sort function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)] Results using sorted function [Runner(bibnumber='5234', duration=1420), Runner(bibnumber='2342', duration=1490), Runner(bibnumber='8567', duration=1500), Runner(bibnumber='2344', duration=1600), Runner(bibnumber='23444', duration=1620)]
Пояснение к коду:
- Базовый список сортируется с использованием как функции сортировки, так и функции сортировки.
- Базовый список теряется при применении функции сортировки.
- Функцию сортировки не следует применять к исходному набору данных. Его следует использовать при наличии копии исходного набора данных.
- Функция Sorted сохраняет исходный список. Это не отменяет его.
- Это обеспечивает лучшую отслеживаемость и эффективное управление данными.
Заключение
- Функция сортировки помогает сортировать числовой и строковый список в Python.
- Это также может помочь в сортировке кортежей.
- Reverse и key являются необязательными параметрами функции.
- Если необходимо иметь отдельный список и одновременно иметь исходный список, то необходимо использовать функцию сортировки, в противном случае необходимо использовать функцию сортировки для достижения оптимизированного использования памяти.

