Python List sort() med eksempler
Hvad er sort() metoden i Python?
Sorter funktion ind Python hjรฆlper med at sortere en liste i stigende eller faldende rรฆkkefรธlge. Den kan bruges til at sortere en numerisk liste, tupler og strengliste. Den opretter ikke en separat liste, men รฆndrer eller sorterer originalen.
Syntaks for sorteringsmetode i Python
Sorteringsfunktionen har fรธlgende syntaks som angivet nedenfor: โ
List.sort(key=โฆ, reverse=โฆ)
Sorteringsfunktionen har to valgfrie parametre, nemlig som angivet nedenfor: โ
- Nรธgle:- Dette bruges til at sortere en funktion baseret pรฅ et sorteringskriterium.
- Reverse: โ det tager vรฆrdien som enten sand eller falsk. Hvis det er sandt, sorterer denne brugerdefinerede funktion listen i faldende rรฆkkefรธlge.
Sortering af en liste i stigende rรฆkkefรธlge ved hjรฆlp af sorteringsmetoden i Python
In Python, sorterer sorteringsfunktionen som standard enhver liste i stigende rรฆkkefรธlge. En liste i stigende rรฆkkefรธlge har den laveste vรฆrdi pรฅ venstre side, og den hรธjeste vรฆrdi kommer pรฅ hรธjre side.
Eksempel:
Python kode:
base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)
Output:
the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']
Kodeforklaring:
- Ovenstรฅende liste er en tilfรฆldigt defineret strengliste.
- Den slags funktion af Python hjรฆlper med at sortere den tilfรฆldige liste i stigende rรฆkkefรธlge, med den laveste lรฆngde af ordet i venstre side og den hรธjeste lรฆngde af ordet i hรธjre side.
Sortering af en liste i faldende rรฆkkefรธlge
Sorteringsfunktionen gรธr det ogsรฅ muligt at sortere en liste i faldende rรฆkkefรธlge. Det kan defineres som ordren hvor listen starter med den hรธjeste vรฆrdi og slutter med den laveste vรฆrdi.
Den omvendte parameter for sorteringsfunktionen er tildelt som sand for at fรฅ en liste sorteret i faldende rรฆkkefรธlge.
Lad os se pรฅ nedenstรฅende eksempel: -
Python kode:
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)
Output:
the base list after sorting is [50, 100, 400, 600, 8000] the base list after REVERSE sorting is [8000, 600, 400, 100, 50]
Bemรฆrk: Sรธrg for, at tildelingen af โโordet "True" til den omvendte parameter starter med stort "T" for at undgรฅ driftstidsfejl.
Sortering af en liste over tupler ved hjรฆlp af sorteringsmetoden i Python
Python tupler er samlinger af uforanderlige elementer, der fรธlger en ordnet sekvens. Python's sorteringsfunktion kan bruges til at sortere en liste over tupler ved hjรฆlp af en tilpasset funktion og lambda-udtryk.
En tilpasset funktion kan oprettes uden et navn og reprรฆsenteret ved et lambda-udtryk. Fรธlgende er syntaksen for Lambda-udtryk: โ
Syntaks:
Lambda arguments: expression
Ovenstรฅende syntaks svarer til nedenstรฅende python-kode:
def name (arguments): return expression
Her er et eksempel pรฅ en tupel og tilpasset funktion for at illustrere, hvordan en sorteringsfunktion med nรธgleparametre hjรฆlper med at sortere elementerne i en tupel:
Python kode:
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)
Output:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Kodeforklaring:
- Den omvendte parameter er defineret som sand for at sortere tuplen i faldende rรฆkkefรธlge.
- Den tilpassede funktion tager det andet element i tuplet.
- Dette bruges som nรธglen til sorteringsfunktionen.
Lad os se pรฅ nedenstรฅende eksempel, der gรธr brug af lambda-udtryk:
Python kode:
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)
Output:
The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]
Forklaring:
- Lambda-udtrykket hjรฆlper dig med at sortere elementerne i tuplen fra hรธj til lav med nรธglen som det andet element i tuplen.
- Programmet vil kontrollere den hรธjeste vรฆrdi af det andet element i tuplet.
Sortering af listeelementer med Len som nรธgleparameter
Len er en indbygget funktion, der bestemmer varens lรฆngde. Den bestemte lรฆngde kan bruges til indekseringen i sorteringsfunktionen. For at gรธre dette tildeler vi Len til Python sorteringsfunktionens nรธgleparameter.
Fรธlgende Python kode illustrerer, hvordan man bruger Len-funktionen med sorteringsfunktionen.
Python Kode:
base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)
Output:
The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']
Kodeforklaring:
- Lรฆngden af โโelementet bliver et indeks for nรธgleparameteren for at arrangere listen i stigende rรฆkkefรธlge.
- Len-funktionen estimerer lรฆngden af โโhvert element, der findes i basislisten.
- Det holder det korteste element i venstre side og det stรธrste element i hรธjre side.
- Her har ordene alt og java lรฆngder pรฅ 4, som er arrangeret fรธrst pรฅ listen, efterfulgt af Guru99, som har en lรฆngde pรฅ 6.
Dette eksempel illustrerer konceptet med den omvendte parameter i sorteringsfunktionen som vist nedenfor: โ
Python Kode:
base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len,reverse=True)
print("The sorted list based on length:",base_list)
Output:
The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']
Sortering af listeelementer ved hjรฆlp af brugerdefineret funktion som en nรธgleparameter
Du kan ogsรฅ bruge en brugerdefineret funktion som en nรธgleparameter til at sortere en liste. Her er et eksempel: โ
Python Kode:
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)
Output:
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}]
Kodeforklaring:
- Der oprettes en brugerdefineret funktion for at returnere รฅret
- Nรธgleparameteren tager en brugerdefineret funktion som et kriterium.
- Sorteringsfunktionen vil arrangere listen i stigende rรฆkkefรธlge baseret pรฅ vรฆrdien af โโelementet "รฅr".
Forskellen mellem sorteringsmetoden og sorteret metode i Python
Fรธr forskellene opsummeres, lad os forstรฅ syntaksen for den sorterede metode.
Python Syntaks:
sorted (list_name, reverse=โฆ., key=..)
Kodeforklaring:
- Den sorterede funktion sorterer listen i enten stigende eller faldende rรฆkkefรธlge.
- Funktionen accepterer tre parametre, hvoraf to parametre er af valgfri type, og en parameter er af den รธnskede type.
- Parameter listenavn er pรฅkrรฆvet, nรฅr du bruger metoden Sorteret.
- Den Sorterede metode kan tage enhver type itererbar liste som input.
- Nรธgleparametre og omvendte parametre er valgfrie parametre under den sorterede metode i Python.
Her er et eksempel pรฅ brug af funktionen sorteret og sorteret i Python som vist nedenfor: -
Python kode:
#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)
Output:
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
Kodeforklaring:
- Den oprindelige liste videregives som en nรธdvendig parameter for den sorterede funktion.
- Den Sorterede metode returnerer en ny liste udover den oprindelige liste.
- Da der ikke overfรธres yderligere parametre til den sorterede metode, er den nye liste som standard sorteret i stigende rรฆkkefรธlge.
- Sorteringsfunktionen laver ikke nogen ny liste.
Fรธlgende er punkter om vigtige ligheder og forskelle: -
| Sorteret funktion | Sorteringsfunktion |
|---|---|
| Sorteret funktion i Python er en indbygget funktion, der tager listenavn som en pรฅkrรฆvet parameter. | Sorteringsfunktionen tager ikke den originale liste som en parameter. |
| Sorteret metode returnerer en ny liste | Sorteringsfunktionen returnerer ikke en ny liste |
| Sorteret funktion skal bruges til iterable lister | Sorteringsfunktionen skal bruges til ikke-iterbare lister. |
| Det รฆndrer ikke den originale liste og giver os mulighed for at beholde originale data. | Sorteringsfunktionen รฆndrer den oprindelige funktion og optager derfor mindre hukommelsesplads |
Hvornรฅr skal man bruge sorteringsmetoden eller sorteringsmetoden?
Lad os tage et eksempel, der krรฆver, at racedata skal sorteres. Programmet bruger bib-nummeret og tiden det tager i sekunder for at afslutte lรธbet.
Python kode:
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)
Output:
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)]
Kodeforklaring:
- Basislisten sorteres ved hjรฆlp af bรฅde sorteringsfunktionen og sorteringsfunktionen.
- Basislisten gรฅr tabt, nรฅr sorteringsfunktionen anvendes.
- Sorteringsfunktionen bรธr ikke anvendes pรฅ det originale datasรฆt. Det skal bruges, nรฅr der er en kopiversion af det originale datasรฆt.
- Funktionen Sorteret bevarer den originale liste. Det tilsidesรฆtter det ikke.
- Dette giver bedre sporbarhed og effektiv datahรฅndtering.
Konklusion
- Sorteringsfunktionen hjรฆlper med at sortere en numerisk og strengliste i python.
- Det kan ogsรฅ hjรฆlpe med at sortere tupler.
- Reverse og key er valgfrie parametre for funktionen.
- Hvis der er behov for at have en separat liste og samtidig have den originale liste, sรฅ skal den sorterede funktion bruges ellers skal sorteringsfunktionen udnyttes for at opnรฅ optimeret hukommelsesudnyttelse.

