Python List sort() cu Exemple
รn ce este metoda sort(). Python?
Funcศia de sortare Python ajutฤ la sortarea unei liste รฎn ordine crescฤtoare sau descrescฤtoare. Poate fi folosit pentru sortarea unei liste numerice, a tuplurilor ศi a unei liste de ศiruri. Nu creeazฤ o listฤ separatฤ, ci modificฤ sau sorteazฤ originalul.
Sintaxa metodei Sort รฎn Python
Funcศia de sortare are urmฤtoarea sintaxฤ, aศa cum este listatฤ mai jos: โ
List.sort(key=โฆ, reverse=โฆ)
Funcศia de sortare are doi parametri opศionali, ศi anume cei enumeraศi mai jos: โ
- Cheie:- Aceasta este folositฤ pentru a sorta o funcศie pe baza unui criteriu de sortare.
- Reverse: โ ia valoarea ca fiind adevฤratฤ sau falsฤ. Dacฤ este adevฤratฤ, aceastฤ funcศie personalizatฤ sorteazฤ lista รฎn ordine descrescฤtoare.
Sortarea unei liste รฎn ordine crescฤtoare utilizรขnd metoda Sort รฎn Python
In Python, funcศia de sortare, รฎn mod implicit, sorteazฤ orice listฤ รฎn ordine crescฤtoare. O listฤ รฎn ordine crescฤtoare are cea mai micฤ valoare รฎn partea stรขngฤ, iar cea mai mare valoare vine รฎn partea dreaptฤ.
Exemplu:
Python cod:
base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)
ieศire:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Explicaศia codului:
- Lista de mai sus este o listฤ de ศiruri definite aleatoriu.
- Funcศia de sortare a Python ajutฤ la sortarea listei aleatoare รฎn ordine crescฤtoare, cu lungimea cea mai micฤ a cuvรขntului รฎn partea stรขngฤ ศi cea mai mare lungime a cuvรขntului รฎn partea dreaptฤ.
Sortarea unei liste รฎn ordine descrescฤtoare
Funcศia de sortare permite, de asemenea, sortarea unei liste รฎn ordine descrescฤtoare. Poate fi definitฤ ca ordine unde lista รฎncepe cu cea mai mare valoare ศi se terminฤ cu cea mai micฤ valoare.
Parametrul invers al funcศiei de sortare este atribuit ca adevฤrat pentru a obศine o listฤ sortatฤ รฎn ordine descrescฤtoare.
Sฤ ne uitฤm la exemplul de mai jos: -
Python cod:
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)
ieศire:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Notฤ: Asiguraศi-vฤ cฤ alocarea cuvรขntului โTrueโ la parametrul invers รฎncepe cu โTโ majuscul pentru a evita orice eroare de timp de rulare.
Sortarea unei liste de tupluri folosind metoda Sort in Python
Python Tupluri sunt colecศii de elemente imuabile care urmeazฤ o succesiune ordonatฤ. PythonFuncศia de sortare a lui poate fi folositฤ pentru a sorta o listฤ de tupluri folosind o funcศie personalizatฤ ศi o expresie lambda.
O funcศie personalizatฤ poate fi creatฤ fฤrฤ nume ศi reprezentatฤ printr-o expresie lambda. Urmฤtoarea este sintaxa pentru expresia Lambda: โ
Sintaxฤ:
Lambda arguments: expression
Sintaxa de mai sus este echivalentฤ cu codul python de mai jos:
def name (arguments): return expression
Iatฤ un exemplu de tuplu ศi funcศie personalizatฤ pentru a ilustra modul รฎn care o funcศie de sortare cu parametri cheie ajutฤ la sortarea elementelor dintr-un tuplu:-
Python cod:
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)
ieศire:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Explicaศia codului:
- Parametrul invers este definit ca adevฤrat pentru a sorta tuplu รฎn ordine descrescฤtoare.
- Funcศia personalizatฤ preia al doilea element al tuplului.
- Aceasta este folositฤ ca cheie a funcศiei de sortare.
Sฤ ne uitฤm la exemplul de mai jos care utilizeazฤ expresia lambda:
Python cod:
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)
ieศire:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Explicaลฃie:
- Expresia lambda vฤ ajutฤ sฤ sortaศi elementele tuplului de la mare la scฤzut cu cheia ca al doilea element al tuplului.
- Programul va verifica cea mai mare valoare a celui de-al doilea element al tuplului.
Sortarea elementelor din listฤ folosind Len ca parametru cheie
Len este o funcศie รฎncorporatฤ care determinฤ lungimea articolului. Lungimea determinatฤ poate fi utilizatฤ pentru indexare รฎn funcศia de sortare. Pentru a face acest lucru, รฎi atribuim lui Len Python parametrul cheie al funcศiei de sortare.
Urmฤtoarele Python codul ilustreazฤ modul de utilizare a funcศiei Len cu funcศia de sortare.
Python Cod:
base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)
ieศire:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Explicaศia codului:
- Lungimea elementului devine un index pentru parametrul cheie pentru a aranja lista รฎn ordine crescฤtoare.
- Funcศia Len estimeazฤ lungimea fiecฤrui element prezent รฎn lista de bazฤ.
- Pฤstreazฤ cel mai scurt element รฎn partea stรขngฤ ศi cel mai mare element รฎn partea dreaptฤ.
- Aici, cuvintele alto ศi java au lungimi de 4, care sunt aranjate primul รฎn listฤ, urmate de Guru99, care are o lungime de 6.
Acest exemplu ilustreazฤ conceptul de parametru invers รฎn funcศia de sortare, aศa cum se aratฤ mai jos: โ
Python Cod:
base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)
ieศire:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Sortarea elementelor din listฤ folosind funcศia definitฤ de utilizator ca parametru cheie
De asemenea, puteศi utiliza o funcศie definitฤ de utilizator ca parametru cheie pentru a sorta o listฤ. Iatฤ un exemplu: -
Python Cod:
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)
ieศire:
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}]
Explicaศia codului:
- Este creatฤ o funcศie definitฤ de utilizator pentru a returna anul
- Parametrul cheie ia ca criteriu o funcศie definitฤ de utilizator.
- Funcศia de sortare va aranja lista รฎn ordine crescฤtoare pe baza valorii elementului โanโ.
Diferenศa dintre metoda de sortare ศi metoda sortatฤ รฎn Python
รnainte de a rezuma diferenศele, sฤ รฎnศelegem sintaxa metodei Sorted.
Python Sintaxฤ:
sorted (list_name, reverse=โฆ., key=..)
Explicaศia codului:
- Funcศia sortatฤ sorteazฤ lista fie รฎn ordine crescฤtoare, fie รฎn ordine descrescฤtoare.
- Funcศia acceptฤ trei parametri, dintre care doi parametri sunt de tip opศional ศi un parametru este de tipul necesar.
- Parametrul list_name este necesar cรขnd se utilizeazฤ metoda Sorted.
- Metoda Sorted poate lua ca intrare orice tip de listฤ iterabilฤ.
- Parametrii cheie ศi parametrii inversi sunt parametri opศionali conform metodei sortate รฎn Python.
Iatฤ un exemplu de utilizare a funcศiei de sortare ศi sortare รฎn Python dupฤ cum se aratฤ mai jos: -
Python cod:
#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)
ieศire:
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
Explicaศia codului:
- Lista originalฤ este transmisฤ ca parametru necesar pentru funcศia sortatฤ.
- Metoda Sorted returneazฤ o nouฤ listฤ รฎn afarฤ de lista originalฤ.
- Deoarece nu sunt transferaศi parametri suplimentari metodei sortate, noua listฤ este sortatฤ implicit รฎn ordine crescฤtoare.
- Funcศia de sortare nu face nicio listฤ nouฤ.
Urmฤtoarele sunt punctele privind asemฤnฤrile ศi diferenศele cheie: -
| Funcศie sortatฤ | Funcศia de sortare |
|---|---|
| Funcศia sortatฤ รฎn Python este o funcศie รฎncorporatฤ care ia list_name ca parametru necesar. | Funcศia de sortare nu ia lista originalฤ ca parametru. |
| Metoda sortatฤ returneazฤ o nouฤ listฤ | Funcศia de sortare nu returneazฤ o listฤ nouฤ |
| Funcศia sortatฤ ar trebui utilizatฤ pentru liste iterabile | Funcศia de sortare ar trebui utilizatฤ pentru listele care nu pot fi iterabile. |
| Nu modificฤ lista originalฤ ศi ne permite sฤ pฤstrฤm datele originale. | Funcศia de sortare modificฤ funcศia originalฤ ศi, prin urmare, ocupฤ mai puศin spaศiu de memorie |
Cรขnd sฤ utilizaศi metoda sortatฤ sau metoda sortฤrii?
Sฤ luฤm un exemplu care necesitฤ sortarea datelor despre curse. Programul foloseศte numฤrul dosarului ศi timpul necesar รฎn secunde pentru a termina cursa.
Python cod:
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)
ieศire:
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)]
Explicaศia codului:
- Lista de bazฤ este sortatฤ folosind atรขt funcศia de sortare, cรขt ศi funcศia sortatฤ.
- Lista de bazฤ se pierde atunci cรขnd este aplicatฤ funcศia de sortare.
- Funcศia de sortare nu trebuie aplicatฤ setului de date original. Ar trebui utilizat atunci cรขnd existฤ o versiune de copie a setului de date original.
- Funcศia Sorted pฤstreazฤ lista originalฤ. Nu รฎl depฤศeศte.
- Acest lucru oferฤ o trasabilitate mai bunฤ ศi un management eficient al datelor.
Concluzie
- Funcศia de sortare ajutฤ la sortarea unei liste numerice ศi de ศiruri รฎn python.
- De asemenea, poate ajuta la sortarea tuplurilor.
- Reverse ศi key sunt parametri opศionali ai funcศiei.
- Dacฤ este nevoie de a avea o listฤ separatฤ ศi de a avea simultan lista originalฤ, atunci funcศia sortatฤ trebuie utilizatฤ altfel, funcศia de sortare trebuie utilizatฤ pentru a obศine o utilizare optimizatฤ a memoriei.

