Python – seznamy řazení
Seřadit seznam alfanumericky
Objekty seznamu mají
sort()
metodu, která ve výchozím nastavení seřadí seznam alfanumericky, vzestupně:
Příklad
Seřadit seznam podle abecedy:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort()
print(thislist)
Příklad
Seřaďte seznam číselně:
thislist = [100, 50, 65, 82, 23]
thislist.sort()
print(thislist)
Seřadit sestupně
Chcete-li seřadit sestupně, použijte argument klíčového slova reverse = True
:
Příklad
Seřadit seznam sestupně:
thislist = ["orange", "mango", "kiwi",
"pineapple", "banana"]
thislist.sort(reverse = True)
print(thislist)
Příklad
Seřadit seznam sestupně:
thislist = [100, 50, 65, 82, 23]
thislist.sort(reverse = True)
print(thislist)
Přizpůsobit funkci řazení
Svou vlastní funkci si také můžete přizpůsobit pomocí klíčového slova argument .key =
function
Funkce vrátí číslo, které bude použito k seřazení seznamu (nejnižší číslo jako první):
Příklad
Seřaďte seznam podle toho, jak blízko se číslo blíží 50:
def myfunc(n):
return abs(n - 50)
thislist = [100, 50, 65, 82, 23]
thislist.sort(key =
myfunc)
print(thislist)
Třídění bez ohledu na velikost písmen
Ve výchozím nastavení sort()
metoda rozlišuje velká a malá písmena, což vede k tomu, že všechna velká písmena jsou seřazeny před malými:
Příklad
Třídění citlivé na malá a velká písmena může poskytnout neočekávaný výsledek:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort()
print(thislist)
Naštěstí můžeme použít vestavěné funkce jako klíčové funkce při třídění seznamu.
Pokud tedy chcete funkci třídění bez ohledu na velikost písmen, použijte jako klíčovou funkci str.lower:
Příklad
Proveďte třídění seznamu bez ohledu na velikost písmen:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.sort(key
= str.lower)
print(thislist)
Obrácené pořadí
Co když chcete obrátit pořadí seznamu bez ohledu na abecedu?
Metoda reverse()
obrátí aktuální pořadí řazení prvků.
Příklad
Obraťte pořadí položek seznamu:
thislist = ["banana", "Orange", "Kiwi", "cherry"]
thislist.reverse()
print(thislist)