Python - Lijsten sorteren
Lijst alfanumeriek sorteren
Lijstobjecten hebben een
sort()
methode die de lijst standaard alfanumeriek, oplopend, sorteert:
Voorbeeld
Sorteer de lijst alfabetisch:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort()
print(thislist)
Voorbeeld
Sorteer de lijst numeriek:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
Aflopend sorteren
Gebruik het trefwoordargument om aflopend te sorteren reverse = True
:
Voorbeeld
Sorteer de lijst aflopend:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
Voorbeeld
Sorteer de lijst aflopend:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
Sorteerfunctie aanpassen
U kunt ook uw eigen functie aanpassen door het trefwoordargument te gebruiken .key =
function
De functie retourneert een getal dat zal worden gebruikt om de lijst te sorteren (het laagste getal eerst):
Voorbeeld
Sorteer de lijst op basis van hoe dicht het getal bij 50 ligt:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key =
myfunc)
print(thislist)
Hoofdletterongevoelig sorteren
Standaard sort()
is de methode hoofdlettergevoelig, waardoor alle hoofdletters voor kleine letters worden gesorteerd:
Voorbeeld
Hoofdlettergevoelig sorteren kan een onverwacht resultaat geven:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
Gelukkig kunnen we ingebouwde functies gebruiken als sleutelfuncties bij het sorteren van een lijst.
Dus als je een hoofdletterongevoelige sorteerfunctie wilt, gebruik dan str.lower als sleutelfunctie:
Voorbeeld
Voer een hoofdletterongevoelige sortering van de lijst uit:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key
= str.lower)
print(thislist)
Omgekeerde volgorde
Wat als u de volgorde van een lijst wilt omkeren, ongeacht het alfabet?
De reverse()
methode keert de huidige sorteervolgorde van de elementen om.
Voorbeeld
Keer de volgorde van de lijstitems om:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)