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.