Python List sort() med eksempler
⚡ Smart opsummering
Python list sort() arrangerer elementerne i en liste på plads, stigende som standard eller faldende via den omvendte parameter, mens en valgfri tastfunktion sorterer efter brugerdefinerede kriterier såsom længde, tupelfelter eller brugerdefinerede funktioner.

Hvad er sort() metoden i Python?
sort()-funktionen i 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 en strengliste. Den opretter ikke en separat liste, men ændrer eller sorterer originalen.
Syntaks for sorteringsmetode i Python
Sorteringsfunktionen har følgende syntaks:
List.sort(key=…, reverse=…)
Sorteringsfunktionen har to valgfrie parametre, nemlig:
- Nøgle:- Dette bruges til at sortere en funktion baseret på et sorteringskriterium.
- Reverse: – den tager værdien som enten sand eller falsk. Hvis sand, 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']
Code Forklaring:
- 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 brugerdefineret funktion kan oprettes uden navn og repræsenteres af et lambda-udtryk. Syntaksen for Lambda-udtrykket er som følger:
Syntaks:
Lambda arguments: expression
Ovenstående syntaks svarer til nedenstående python-kode:
def name (arguments): return expression
Her er et eksempel på en tuple og en tilpasset funktion, der illustrerer, hvordan en sorteringsfunktion med nøgleparametre hjælper med at sortere elementerne i en tuple:
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)]
Code Forklaring:
- 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 længden af et element. Den bestemte længde kan bruges til indeksering 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 Code:
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']
Code Forklaring:
- 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 alto 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 Code:
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 Code:
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}]
Code Forklaring:
- 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
Efter at have gennemgået ovenstående eksempler, er det nyttigt at sammenligne de to sorteringsværktøjer direkte. Før forskellene opsummeres, lad os forstå syntaksen for Sorted-metoden.
Python Syntaks:
sorted (list_name, reverse=…., key=..)
Code Forklaring:
- 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:
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
Code Forklaring:
- 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 punkterne om de vigtigste 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)]
Code Forklaring:
- 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 tilbyder bedre traceffektivitet og datahåndtering.

