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:

Sortering af listeelementer ved hjælp af Len

  • 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.

Opsummer dette indlæg med: