Python - Sorteer lyste
Sorteer lys alfanumeries
Lysobjekte het 'n
sort()
metode wat die lys by verstek alfanumeries, stygend, sal sorteer:
Voorbeeld
Sorteer die lys alfabeties:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort()
print(thislist)
Voorbeeld
Sorteer die lys numeries:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
Sorteer aflopend
Om dalende te sorteer, gebruik die sleutelwoordargument reverse = True
:
Voorbeeld
Sorteer die lys dalende:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
Voorbeeld
Sorteer die lys dalende:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
Pas sorteerfunksie aan
Jy kan ook jou eie funksie pasmaak deur die sleutelwoordargument te gebruik .key =
function
Die funksie sal 'n nommer terugstuur wat gebruik sal word om die lys te sorteer (die laagste nommer eerste):
Voorbeeld
Sorteer die lys op grond van hoe naby die getal aan 50 is:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key =
myfunc)
print(thislist)
Hoofletteronsensitief Sorteer
By verstek sort()
is die metode hooflettersensitief, wat daartoe lei dat alle hoofletters voor kleinletters gesorteer word:
Voorbeeld
Hooflettersensitiewe sortering kan 'n onverwagte resultaat gee:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
Gelukkig kan ons ingeboude funksies as sleutelfunksies gebruik wanneer ons 'n lys sorteer.
As jy dus 'n hoofletter-onsensitiewe sorteerfunksie wil hê, gebruik str.lower as 'n sleutelfunksie:
Voorbeeld
Voer 'n hoofletter-onsensitiewe soort van die lys uit:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key
= str.lower)
print(thislist)
Omgekeerde volgorde
Wat as jy die volgorde van 'n lys wil omkeer, ongeag die alfabet?
Die reverse()
metode keer die huidige sorteervolgorde van die elemente om.
Voorbeeld
Keer die volgorde van die lysitems om:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)