Python List sort() с примери

Какво представлява методът sort() в Python?

Сортиране на функция в Python помага за сортиране на списък във възходящ или низходящ ред. Може да се използва за сортиране на числов списък, кортежи и списък с низове. Той не създава отделен списък, а модифицира или сортира оригинала.

Синтаксис на метода за сортиране в Python

Функцията за сортиране има следния синтаксис, както е посочен по-долу: –

List.sort(key=…, reverse=…)

Функцията за сортиране има два незадължителни параметъра, а именно изброените по-долу: –

  • Ключ: - Използва се за сортиране на функция въз основа на критерий за сортиране.
  • Reverse: – приема стойността като true или false. Ако е вярно, тази персонализирана функция сортира списъка в низходящ ред.

Сортиране на списък във възходящ ред с помощта на метода Sort in 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 in Python

Python Кортежи са колекции от неизменни елементи, които следват подредена последователност. PythonФункцията за сортиране може да се използва за сортиране на списък от кортежи с помощта на персонализирана функция и ламбда израз.

Персонализирана функция може да бъде създадена без име и представена чрез ламбда израз. Следва синтаксисът за ламбда израза: –

Синтаксис:

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)]

Обяснение на кода:

  • Обратният параметър е дефиниран като 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 е вградена функция, която определя дължината на артикула. Определената дължина може да се използва за индексиране във функцията за сортиране. За да направим това, присвояваме 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=..)

Обяснение на кода:

  • Сортираната функция сортира списъка във възходящ или низходящ ред.
  • Функцията приема три параметъра, от които два параметъра са от незадължителен тип и един параметър е от задължителен тип.
  • Параметър list_name се изисква при използване на метода Sorted.
  • Методът Sorted може да приеме всеки тип итерируем списък като вход.
  • Ключовите параметри и обратните параметри са незадължителни параметри под сортирания метод в Python.

Ето пример за използване на функцията сортиране и сортиране в 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 връща нов списък освен оригиналния списък.
  • Тъй като към сортирания метод не се предават допълнителни параметри, новият списък по подразбиране е сортиран във възходящ ред.
  • Функцията за сортиране не създава нов списък.

Следват точките относно ключовите прилики и разлики: –

Сортирана функция Функция за сортиране
Сортирана функция в Python е вградена функция, която приема list_name като задължителен параметър. Функцията за сортиране не приема оригиналния списък като параметър.
Сортираният метод връща нов списък Функцията за сортиране не връща нов списък
Сортираната функция трябва да се използва за итерируеми списъци Функцията за сортиране трябва да се използва за неитерируеми списъци.
Той не променя оригиналния списък и ни позволява да запазим оригиналните данни. Функцията за сортиране променя оригиналната функция и следователно заема по-малко място в паметта

Кога да използваме метода на сортиране или метода на сортиране?

Нека вземем пример, който изисква данните за расата да бъдат сортирани. Програмата използва номера на бита и времето, необходимо в секунди, за да завърши състезанието.

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)]

Обяснение на кода:

  • Базовият списък се сортира както с помощта на функцията за сортиране, така и с функцията за сортиране.
  • Базовият списък се губи, когато се приложи функцията за сортиране.
  • Функцията за сортиране не трябва да се прилага към оригиналния набор от данни. Трябва да се използва, когато има копие на оригиналния набор от данни.
  • Функцията Сортирани запазва оригиналния списък. Не го отменя.
  • Това предлага по-добра проследимост и ефективно управление на данните.

Заключение

  • Функцията за сортиране помага при сортирането на списък с числа и низове в python.
  • Може също да помогне при сортирането на кортежи.
  • Reverse и key са незадължителни параметри на функцията.
  • Ако е необходимо да имате отделен списък и едновременно да имате оригиналния списък, тогава трябва да се използва сортираната функция, в противен случай трябва да се използва функцията за сортиране, за да се постигне оптимизирано използване на паметта.

Обобщете тази публикация с: