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