Ved å sortere en liste i Python kan du ordne elementene i stigende eller synkende rekkefølge.
I stedet for å skrive lange kodeblokker for å gjøre det, har Python en innebygd metode som lar deg sortere elementene i en hvilken som helst liste eller matrise. Vi forklarer hvordan du gjør det i dette innlegget.
Hvordan sortere en liste i Python
Du kan sortere elementene i en liste eller matrise ved hjelp av Python sortere() metode.
De sortere() metoden i Python godtar to valgfrie argumenter, og syntaksen ser slik ut:
list.sort (key = function, reverse = True / False)
Som standard er sortere() metoden ordner elementene i en liste i stigende rekkefølge:
myList = ["C", "D", "B", "A", "F"]
myList.sort ()
skriv ut (myList)
Utgang: ['A', 'B', 'C', 'D', 'F']
Du kan bruke omvendt argument for å se listen i synkende rekkefølge:
myList = ["C", "D", "B", "A", "F"]
myList.sort (omvendt = True)
skriv ut (myList)
Utgang: ['F', 'D', 'C', 'B', 'A']
Du kan også ordne elementene i en liste etter lengden på hver streng.
For å gjøre det, opprett en funksjon og gi den inn i sortere() metoden ved hjelp av det valgfrie nøkkel argument:
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (vare):
retur lenke (vare)
myList.sort (revers = True, key = sortLength)
skriv ut (myList)
Utgang: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']
Hvordan sortere en liste med ordbøker i Python
Du kan bruke sortere() metode for å sortere en liste med ordbøker også.
La oss sortere oppgavene i ordboken nedenfor etter deres tid:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (vare):
returvare ["Time"]
myArray.sort (nøkkel = sortByTime)
skriv ut (myArray)
Siden tidsverdiene er heltall, omorganiserer den ovennevnte kodeblokken matrisen basert på oppgavetiden.
I slekt: Hvordan arrays og lister fungerer i Python
I tillegg til å sortere matrisen ovenfor etter tid, kan du også ordne den alfabetisk ved hjelp av oppgavene, som er strenger.
For å sortere etter streng i eksempelmatrisen, trenger du bare å endre Tid i firkantet parentes til Oppgave:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Football", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (vare):
returvare ["Oppgave"]
myArray.sort (nøkkel = sortByTime)
skriv ut (myArray)
Du kan også sortere oppgavene i omvendt rekkefølge ved å stille inn omvendt til sant:
myArray.sort (key = sortByTime, reverse = True)
Du kan også bruk en lambda-funksjon med sortere() for renere kode:
myArray.sort (nøkkel = lambda getTime: getTime ["Time"])
skriv ut (myArray)
Hvordan sortere en nestet Python-liste
Du kan sortere en nestet liste over tupler etter indeksen til hvert nestede element i den listen.
For eksempel bruker koden nedenfor det tredje elementet i hver tuple for å sortere listen i stigende rekkefølge:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
returner en [2]
Alist.sort (nøkkel = sortByThirdIndex)
skriv ut (Alist)
Utgang: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
I utgangen ovenfor øker det tredje elementet i hver tuple fra null til tjue påfølgende.
Merk at dette ikke fungerer med et Python-sett siden du ikke kan indeksere det. På toppen av det må hvert rede i listen tilhøre samme datatype.
I slekt: Hva er et sett i Python og hvordan lage en
For å ordne utgangen i synkende rekkefølge:
Alist.sort (key = getIndex, reverse = True)
skriv ut (Alist)
Utgang: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
La oss se hvordan dette ser ut med en lambda fungerer også:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sortert (Alist, key = lambda a: a [2])
skriv ut (newList)
Utgang: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Hvordan sortere en liste ved hjelp av den sorterte () metoden
Alternativt kan du bruke sortert () metode.
Selv om det fungerer på samme måte som sortere() metode, oppretter den en ny sortert liste uten å endre originalen. Syntaksoppsettet er også litt annerledes.
Syntaksen for sortert () metoden ser generelt slik ut:
sortert (liste, nøkkel = funksjon, omvendt = Sann / usann)
Så for å sortere en liste ved hjelp av sortert () metode, må du opprette en ny variabel for den sorterte listen:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
returner en [2]
newList = sortert (Alist, key = getIndex)
skriv ut (newList)
Utgang: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
De sortert () metoden godtar også en lambda fungerer som nøkkel:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sortert (Alist, key = lambda a: a [2])
skriv ut (newList)
Utgang: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Hvor kan du bruke sortering av lister?
En solid forståelse av Python-sorteringsmetoden er nødvendig for effektiv programmering. Den lar deg kontrollere hvordan en liste eller matrise kommer igjennom, og du kan alltid bruke den i virkelige prosjekter. For eksempel kan sortering av en Python-liste være nyttig når du omorganiserer data fra et API eller en database, så det er mer fornuftig for en sluttbruker.
Jobber du med lister i Python? Her er hva du trenger å vite om bruk av Python append-funksjonen når du arbeider med lister.
Les Neste
- Programmering
- Python
- Koding opplæringsprogrammer
Idowu brenner for alt smart teknologi og produktivitet. På fritiden leker han med koding og bytter til sjakkbrettet når han kjeder seg, men han elsker også å bryte seg fra rutinen en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.
Abonner på vårt nyhetsbrev
Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Ett steg til…!
Bekreft e-postadressen din i e-posten vi nettopp sendte deg.