Python List sort() med eksempler

Hva er sort()-metoden i Python?

Sorter funksjon i Python hjelper med รฅ sortere en liste i stigende eller synkende rekkefรธlge. Den kan brukes til รฅ sortere en numerisk liste, tupler og strengliste. Den lager ikke en egen liste, men endrer eller sorterer originalen.

Syntaks for sorteringsmetode i Python

Sorteringsfunksjonen har fรธlgende syntaks som er oppfรธrt nedenfor: โ€“

List.sort(key=โ€ฆ, reverse=โ€ฆ)

Sorteringsfunksjonen har to valgfrie parametere, nemlig som oppfรธrt nedenfor: โ€“

  • Nรธkkel:- Denne brukes til รฅ sortere en funksjon basert pรฅ et sorteringskriterium.
  • Reverse: โ€“ den tar verdien som enten sann eller usann. Hvis sant, sorterer denne egendefinerte funksjonen listen i synkende rekkefรธlge.

Sortering av en liste i stigende rekkefรธlge ved hjelp av Sorter-metoden i Python

In Python, sorterer sorteringsfunksjonen som standard enhver liste i stigende rekkefรธlge. En liste i stigende rekkefรธlge har den laveste verdien pรฅ venstre side, og den hรธyeste verdien kommer pรฅ hรธyre side.

Eksempel:

Python kode:

base_list=["Google","Reliance","Guru99","Content","Syntax"]
base_list.sort()
print("the base list after sorting is",base_list)

Utgang:

the base list after sorting is ['Content', 'Google', 'Guru99', 'Reliance', 'Syntax']

Kodeforklaring:

  • Listen ovenfor er en tilfeldig definert strengliste.
  • Den slags funksjon av Python hjelper til med รฅ sortere den tilfeldige listen i stigende rekkefรธlge, med den laveste lengden pรฅ ordet pรฅ venstre side og den hรธyeste lengden pรฅ ordet pรฅ hรธyre side.

Sortering av en liste i synkende rekkefรธlge

Sorteringsfunksjonen lar ogsรฅ en liste sorteres i synkende rekkefรธlge. Det kan defineres som rekkefรธlgen hvor listen starter med den hรธyeste verdien og slutter med den laveste verdien.

Den omvendte parameteren til sorteringsfunksjonen er tilordnet som sann for รฅ fรฅ en liste sortert i synkende rekkefรธlge.

La oss se pรฅ eksemplet nedenfor: -

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)

Utgang:

the base list after sorting is [50, 100, 400, 600, 8000]
the base list after REVERSE sorting is [8000, 600, 400, 100, 50]

Merk: Sรธrg for at tilordningen av ordet "True" til den omvendte parameteren starter med stor "T" for รฅ unngรฅ kjรธretidsfeil.

Sortering av en liste over tupler ved รฅ bruke sorteringsmetoden i Python

Python Tupler er samlinger av uforanderlige elementer som fรธlger en ordnet sekvens. Python's sorteringsfunksjon kan brukes til รฅ sortere en liste over tupler ved hjelp av en tilpasset funksjon og lambda-uttrykk.

En tilpasset funksjon kan opprettes uten navn og representert med et lambda-uttrykk. Fรธlgende er syntaksen for Lambda-uttrykk: โ€“

Syntaks:

Lambda arguments: expression

Syntaksen ovenfor tilsvarer pythonkoden nedenfor:

def name (arguments):
return expression

Her er et eksempel pรฅ en tuppel og tilpasset funksjon for รฅ illustrere hvordan en sorteringsfunksjon med nรธkkelparametere hjelper til med รฅ sortere elementene i en tuppel:

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)

Utgang:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Kodeforklaring:

  • Den omvendte parameteren er definert som sann for รฅ sortere tuppelen i synkende rekkefรธlge.
  • Den tilpassede funksjonen tar det andre elementet i tupelen.
  • Dette brukes som nรธkkelen til sorteringsfunksjonen.

La oss se pรฅ eksemplet nedenfor som bruker lambda-uttrykk:

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)

Utgang:

The change in the base list is as follows [('Guru99', 2019, 1070), ('Alto', 2020, 500), ('MSFT', 2022, 300)]

Forklaring:

  • Lambda-uttrykket hjelper deg รฅ sortere elementene i tuppelen fra hรธy til lav med nรธkkelen som andre element i tupelen.
  • Programmet vil sjekke den hรธyeste verdien av det andre elementet i tupelen.

Sortering av listeelementer med Len som nรธkkelparameter

Len er en innebygd funksjon som bestemmer lengden pรฅ varen. Lengden som er bestemt kan brukes til indekseringen i sorteringsfunksjonen. For รฅ gjรธre dette tildeler vi Len til Python sorteringsfunksjonens nรธkkelparameter.

Fรธlgende Python koden illustrerer hvordan du bruker Len-funksjonen med sorteringsfunksjonen.

Python Kode:

base_list=["Alto", "Guru99", "Python", "Google", "Java"]
base_list.sort(key=len)
print("The sorted list based on length:",base_list)

Utgang:

The sorted list based on length: ['Alto', 'Java', 'Guru99', 'Python', 'Google']

Kodeforklaring:

Sortere listeelementer ved hjelp av Len

  • Lengden pรฅ elementet blir en indeks for nรธkkelparameteren for รฅ ordne listen i stigende rekkefรธlge.
  • Len-funksjonen estimerer lengden pรฅ hvert element som finnes i basislisten.
  • Den holder det korteste elementet pรฅ venstre side og det stรธrste elementet pรฅ hรธyre side.
  • Her har ordene alt og java lengder pรฅ 4, som er ordnet fรธrst i listen, etterfulgt av Guru99, som har en lengde pรฅ 6.

Dette eksemplet illustrerer konseptet med omvendt parameter i sorteringsfunksjonen 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)

Utgang:

The sorted list based on length: ['Guru99', 'Python', 'Google', 'Alto', 'Java']

Sortering av listeelementer med brukerdefinert funksjon som nรธkkelparameter

Du kan ogsรฅ bruke en brukerdefinert funksjon som en nรธkkelparameter for รฅ 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)

Utgang:

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:

  • En brukerdefinert funksjon opprettes for รฅ returnere รฅret
  • Nรธkkelparameteren tar en brukerdefinert funksjon som et kriterium.
  • Sorteringsfunksjonen vil ordne listen i stigende rekkefรธlge basert pรฅ verdien av elementet "รฅr".

Forskjellen mellom sorteringsmetode og sortert metode i Python

Fรธr forskjellene oppsummeres, la oss forstรฅ syntaksen til den sorterte metoden.

Python Syntaks:

sorted (list_name, reverse=โ€ฆ., key=..)

Kodeforklaring:

  • Den sorterte funksjonen sorterer listen i enten stigende eller synkende rekkefรธlge.
  • Funksjonen aksepterer tre parametere, hvorav to parametere er av valgfri type og en parameter er av รธnsket type.
  • Parameter listenavn kreves ved bruk av Sortert-metoden.
  • Den sorterte metoden kan ta hvilken som helst type itererbar liste som input.
  • Nรธkkelparametere og omvendte parametere er valgfrie parametere under den sorterte metoden i Python.

Her er et eksempel pรฅ bruk av funksjonen sortert og sortert 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)

Utgang:

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 opprinnelige listen sendes som en nรธdvendig parameter for den sorterte funksjonen.
  • Sortert-metoden returnerer en ny liste i tillegg til den opprinnelige listen.
  • Siden ingen ekstra parametere sendes til den sorterte metoden, er den nye listen som standard sortert i stigende rekkefรธlge.
  • Sorteringsfunksjonen lager ingen ny liste.

Fรธlgende er punktene om viktige likheter og forskjeller: -

Sortert funksjon Sorteringsfunksjon
Sortert funksjon i Python er en innebygd funksjon som tar listenavn som en nรธdvendig parameter. Sorteringsfunksjonen tar ikke den opprinnelige listen som en parameter.
Sortert metode returnerer en ny liste Sorteringsfunksjonen returnerer ikke en ny liste
Sortert funksjon skal brukes for iterable lister Sorteringsfunksjonen skal brukes for ikke-iterbare lister.
Den endrer ikke den opprinnelige listen og lar oss beholde originale data. Sorteringsfunksjonen modifiserer den opprinnelige funksjonen og opptar derfor mindre minneplass

Nรฅr skal man bruke sorteringsmetoden eller sorteringsmetoden?

La oss ta et eksempel som krever at lรธpsdata sorteres. Programmet bruker bib-nummeret og tiden det tar i sekunder for รฅ fullfรธre lรธpet.

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)

Utgang:

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 er sortert med bรฅde sorteringsfunksjonen og sortert funksjon.
  • Basislisten gรฅr tapt nรฅr sorteringsfunksjonen brukes.
  • Sorteringsfunksjonen skal ikke brukes pรฅ det opprinnelige datasettet. Den bรธr brukes nรฅr det finnes en kopiversjon av det originale datasettet.
  • Sortert-funksjonen beholder den opprinnelige listen. Den overstyrer den ikke.
  • Dette gir bedre sporbarhet og effektiv datahรฅndtering.

Konklusjon

  • Sorteringsfunksjonen hjelper til med รฅ sortere en numerisk og strengliste i python.
  • Det kan ogsรฅ hjelpe med รฅ sortere tupler.
  • Reverse og key er valgfrie parametere for funksjonen.
  • Dersom det er behov for รฅ ha en egen liste og samtidig ha den originale listen, sรฅ mรฅ den sorterte funksjonen brukes ellers, sorteringsfunksjonen mรฅ utnyttes for รฅ oppnรฅ optimalisert minneutnyttelse.

Oppsummer dette innlegget med: