Slik sorterer du nesten alle typer lister i Python

Slik sorterer du nesten alle typer lister i Python

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 liste eller matrise. Vi vil forklare hvordan du gjør det i dette innlegget.





Slik sorterer du en liste i Python

Du kan sortere elementene i en liste eller matrise ved hjelp av Python sortere() metode.





De sortere() metode 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()
print(myList)
Output: ['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(reverse = True)
print(myList)
Output: ['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 send den inn i sortere() metoden ved hjelp av det valgfrie nøkkel argument:

myList = ['MUO', 'Python', 'JavaScript', 'Sort', 'Sortlists']
def sortLength(item):
return len(item)
myList.sort(reverse = True, key = sortLength)
print(myList)
Output: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Slik sorterer du en liste over ordbøker i Python

Du kan bruke sortere() metode for å sortere en liste over ordbøker også.





La oss sortere oppgavene i ordboken nedenfor etter tid:

myArray = [
{'Task': 'Wash', 'Time': 12.00},
{'Task':'Football', 'Time': 24.00},
{'Task':'Sort', 'Time': 17.00},
{'Task':'Code', 'Time': 15.00}
]
def sortByTime(item):
return item['Time']
myArray.sort(key = sortByTime)
print(myArray)

Siden tidsverdiene er heltall, omorganiserer ovennevnte kodeblokk matrisen basert på oppgavetiden.

I slekt: Hvordan matriser og lister fungerer i Python

I tillegg til å sortere matrisen ovenfor etter tid, kan du også ordne det alfabetisk ved hjelp av oppgavene, som er strenger.

For å sortere etter streng i eksempelmatrisen trenger du bare å endre Tid i firkantet brakett 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(item):
return item['Task']
myArray.sort(key = sortByTime)
print(myArray)

Du kan også sortere oppgavene i omvendt rekkefølge ved å angi omvendt til sant:

myArray.sort(key = sortByTime, reverse = True)

Du kan også bruk en lambda -funksjon med sortere() for renere kode:

myArray.sort(key = lambda getTime: getTime['Time'])
print(myArray)

Slik sorterer du en nestet pythonliste

Du kan sortere en nestet liste over tupler etter indeksen for hvert nestede element i listen.

Koden nedenfor bruker for eksempel det tredje elementet i hver tupel til å 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):
return a[2]
Alist.sort(key = sortByThirdIndex)
print(Alist)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

I utdataene ovenfor øker det tredje elementet i hver tupel fra null til tjue på rad.

Vær oppmerksom på at dette ikke fungerer med et Python -sett siden du ikke kan indeksere det. På toppen av det må hvert rede på listen tilhøre den samme datatypen.

Relatert: Hva er et sett i Python og hvordan lage et

hvordan skjermbilde på snapchat uten at noen vet det

For å ordne utgangen i synkende rekkefølge:

Alist.sort(key = getIndex, reverse = True)
print(Alist)
Output: [(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 = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Slik sorterer du en liste ved hjelp av metoden Sortert ()

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 vanligvis slik ut:

sorted(list, key = function, reverse = True/False)

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):
return a[2]
newList = sorted(Alist, key = getIndex)
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

De sortert () metoden godtar også a lambda fungere som nøkkelen:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Hvor kan du bruke listesortering?

En solid forståelse av Python -sorteringsmetoden er nødvendig for effektiv programmering. Den lar deg kontrollere hvordan en liste eller matrise kommer gjennom, 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.

Dele Dele kvitring E -post Slik legger du til en liste i Python

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
Relaterte temaer
  • Programmering
  • Python
  • Opplæringsprogrammer for koding
Om forfatteren Idisou Omisola(94 artikler publisert)

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 liker også å bryte fra rutinen en gang i blant. Hans lidenskap for å vise folk veien rundt moderne teknologi motiverer ham til å skrive mer.

Mer fra Idowu Omisola

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere