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

  • Длина элемента становится индексом ключевого параметра для упорядочения списка в порядке возрастания.
  • Функция 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 являются необязательными параметрами функции.
  • Если необходимо иметь отдельный список и одновременно иметь исходный список, то необходимо использовать функцию сортировки, в противном случае необходимо использовать функцию сортировки для достижения оптимизированного использования памяти.