Når du sorterer en liste i Python, kan du arrangere dens varer i stigende eller faldende rækkefølge.
I stedet for at skrive lange kodeblokke for at gøre det, har Python en indbygget metode, der giver dig mulighed for at sortere elementerne i enhver liste eller matrix. Vi forklarer, hvordan man gør det i dette indlæg.
Sådan sorteres en liste i Python
Du kan sortere elementerne i en liste eller et array ved hjælp af Python sortere() metode.
Det sortere() metode i Python accepterer to valgfri argumenter, og syntaksen ser sådan ud:
list.sort (nøgle = funktion, omvendt = sand / falsk)
Som standard er sortere() metode arrangerer elementerne på en liste i stigende rækkefølge:
myList = ["C", "D", "B", "A", "F"]
myList.sort ()
udskrive (myList)
Output: ['A', 'B', 'C', 'D', 'F']
Du kan bruge baglæns argument for at se listen i faldende rækkefølge:
myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
udskrive (myList)
Output: ['F', 'D', 'C', 'B', 'A']
Du kan også arrangere elementerne på en liste efter længden af hver streng.
For at gøre det skal du oprette en funktion og sende den til sortere() metode ved hjælp af valgfri nøgle argument:
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (vare):
returner len (vare)
myList.sort (reverse = True, key = sortLength)
udskrive (myList)
Output: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']
Sådan sorteres en liste over ordbøger i Python
Du kan bruge sortere() metode til også at sortere en liste med ordbøger.
Lad os sortere opgaverne i ordbogen nedenfor efter deres tid:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Fodbold", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (vare):
returvare ["Tid"]
myArray.sort (nøgle = sortByTime)
print (myArray)
Da tidsværdierne er heltal, omarrangerer ovenstående kodeblok arrayet baseret på opgavetiden.
Relaterede: Sådan fungerer arrays og lister i Python
Ud over at sortere arrayet ovenfor efter tid kan du også arrangere det alfabetisk ved hjælp af opgaverne, som er strenge.
For at sortere efter streng i eksempelarrayet behøver du kun at ændre Tid i firkantet parentes til Opgave:
myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Fodbold", "Time": 24.00},
{"Task": "Sort", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (vare):
returnere vare ["Opgave"]
myArray.sort (nøgle = sortByTime)
print (myArray)
Du kan også sortere opgaverne i omvendt rækkefølge ved at indstille baglæns til sandt:
myArray.sort (key = sortByTime, reverse = True)
Du kan også brug en lambda-funktion med sortere() for renere kode:
myArray.sort (nøgle = lambda getTime: getTime ["Time"])
print (myArray)
Sådan sorteres en indlejret Python-liste
Du kan sortere en indlejret liste over tupler efter indekset for hvert indlejrede element på denne liste.
For eksempel bruger nedenstående kode det tredje element i hver tuple til at sortere listen i stigende rækkefø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øgle = sortByThirdIndex)
udskrive (Alist)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
I output ovenfor stiger det tredje element i hver tuple fra nul til tyve fortløbende.
Bemærk, at dette ikke fungerer med et Python-sæt, da du ikke kan indeksere det. Oven i det skal hver rede på listen tilhøre den samme datatype.
Relaterede: Hvad er et sæt i Python, og hvordan man opretter et
Men for at arrangere output i faldende rækkefølge:
Alist.sort (key = getIndex, reverse = True)
udskrive (Alist)
Output: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
Lad os se, hvordan dette ser ud med en lambda fungerer også:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorteret (Alist, key = lambda a: a [2])
print (newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Sådan sorteres en liste ved hjælp af den sorterede () metode
Alternativt kan du bruge sorteret () metode.
Selvom det fungerer på samme måde som sortere() metode opretter den en ny sorteret liste uden at ændre originalen. Dens syntakslayout er også lidt anderledes.
Syntaksen for sorteret () metode ser generelt sådan ud:
sorteret (liste, nøgle = funktion, omvendt = sand / falsk)
Så for at sortere en liste ved hjælp af sorteret () metode, skal du oprette en ny variabel til den sorterede liste:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
returner en [2]
newList = sorteret (Alist, key = getIndex)
print (newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Det sorteret () metode accepterer også en lambda fungerer som nøgle:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorteret (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 anvende sortering af lister?
En solid forståelse af Python-sorteringsmetoden er nødvendig for effektiv programmering. Det giver dig mulighed for at kontrollere, hvordan en liste eller et array kommer igennem, og du kan altid anvende det i virkelige projekter. For eksempel kan sortering af en Python-liste være praktisk, når du omarrangerer data fra en API eller en database, så det giver mere mening for en slutbruger.
Arbejder du med lister i Python? Her er hvad du har brug for at vide om brug af Python append-funktionen, når du arbejder med lister.
Læs Næste
- Programmering
- Python
- Kodning Tutorials
Idowu brænder for alt smart tech og produktivitet. På fritiden leger han med kodning og skifter til skakbrættet, når han keder sig, men han elsker også at bryde væk fra rutinen en gang imellem. Hans lidenskab for at vise folk vejen rundt om moderne teknologi motiverer ham til at skrive mere.
Abonner på vores nyhedsbrev
Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!
Et trin mere !!!
Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.