Řazení seznamu v Pythonu vám umožňuje uspořádat jeho položky vzestupně nebo sestupně.
Namísto psaní dlouhých bloků kódu k tomu má Python vestavěnou metodu, která vám umožňuje třídit položky v libovolném seznamu nebo poli. V tomto příspěvku vysvětlíme, jak to udělat.
Jak seřadit seznam v Pythonu
Položky v seznamu nebo poli můžete řadit pomocí Pythonu sort () metoda.
The sort () metoda v Pythonu přijímá dva volitelné argumenty a syntaxe vypadá takto:
list.sort (key = function, reverse = True / False)
Ve výchozím nastavení je sort () metoda uspořádá položky seznamu vzestupně:
myList = ["C", "D", "B", "A", "F"]
myList.sort ()
tisk (myList)
Výstup: ['A', 'B', 'C', 'D', 'F']
Můžete použít zvrátit argument pro zobrazení seznamu v sestupném pořadí:
myList = ["C", "D", "B", "A", "F"]
myList.sort (reverzní = True)
tisk (myList)
Výstup: ['F', 'D', 'C', 'B', 'A']
Položky v seznamu můžete také uspořádat podle délky každého řetězce.
Chcete-li tak učinit, vytvořte funkci a předejte ji do sort () metoda pomocí volitelného klíč argument:
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (položka):
návratová délka (položka)
myList.sort (reverzní = True, klíč = sortLength)
tisk (myList)
Výstup: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']
Jak třídit seznam slovníků v Pythonu
Můžete použít sort () metoda také seřadit seznam slovníků.
Seřaďme úkoly ve slovníku níže podle času:
myArray = [
{"Úkol": "Praní", "Čas": 12,00},
{"Úkol": "Fotbal", "Čas": 24.00},
{"Úkol": "Řadit", "Čas": 17,00},
{"Úkol": "Kód", "Čas": 15,00}
]
def sortByTime (položka):
vrátit položku ["Čas"]
myArray.sort (key = sortByTime)
tisk (myArray)
Vzhledem k tomu, že hodnoty času jsou celá čísla, výše uvedený blok kódu přeskupí pole na základě času úkolu.
Příbuzný: Jak pole a seznamy fungují v Pythonu
Kromě třídění výše uvedeného pole podle času ho můžete také uspořádat abecedně pomocí úkolů, kterými jsou řetězce.
Chcete-li seřadit podle řetězce v příkladovém poli, musíte pouze změnit Čas v hranatém závorce na Úkol:
myArray = [
{"Úkol": "Praní", "Čas": 12,00},
{"Úkol": "Fotbal", "Čas": 24.00},
{"Úkol": "Řadit", "Čas": 17,00},
{"Úkol": "Kód", "Čas": 15,00}
]
def sortByTime (položka):
vrátit položku ["Úkol"]
myArray.sort (key = sortByTime)
tisk (myArray)
Úkoly můžete také seřadit v opačném pořadí podle nastavení zvrátit pravda:
myArray.sort (key = sortByTime, reverse = True)
Můžete také použijte funkci lambda s sort () pro čistší kód:
myArray.sort (key = lambda getTime: getTime ["Time"])
tisk (myArray)
Jak seřadit vnořený seznam Pythonu
Vnořený seznam n-tic můžete seřadit podle indexu každého vnořeného prvku v tomto seznamu.
Například níže uvedený kód používá třetí položku v každé n-tici k seřazení seznamu ve vzestupném pořadí:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
vrátit [2]
Alist.sort (key = sortByThirdIndex)
tisk (Alist)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Ve výstupu výše se třetí položka v každé n-tici zvyšuje z nuly na dvacet po sobě.
Všimněte si, že to nefunguje se sadou Python, protože ji nemůžete indexovat. Kromě toho musí každé hnízdo v seznamu patřit ke stejnému datovému typu.
Příbuzný: Co je sada v Pythonu a jak ji vytvořit
Chcete-li však uspořádat výstup v sestupném pořadí:
Alist.sort (key = getIndex, reverse = True)
tisk (Alist)
Výstup: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
Podívejme se, jak to vypadá s lambda funkce také:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = seřazeno (Alist, key = lambda a: a [2])
tisk (nový seznam)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Jak seřadit seznam pomocí metody Sorted ()
Případně můžete použít seřazeno () metoda.
I když to funguje podobně jako sort () metoda vytvoří nový seřazený seznam bez úpravy původního. Jeho rozložení syntaxe se také mírně liší.
Syntaxe pro seřazeno () metoda obecně vypadá takto:
seřazeno (seznam, klíč = funkce, reverzní = True / False)
Takže seřadit seznam pomocí seřazeno () metoda, musíte vytvořit novou proměnnou pro seřazený seznam:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
vrátit [2]
newList = seřazeno (Alist, key = getIndex)
tisk (nový seznam)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
The seřazeno () metoda také přijímá a lambda funkce jako jeho klíč:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = seřazeno (Alist, key = lambda a: a [2])
tisk (nový seznam)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Kde můžete použít třídění seznamu?
Pro efektivní programování je nutné pevné pochopení metody řazení Pythonu. Umožňuje vám ovládat, jak prochází seznam nebo pole, a můžete jej kdykoli použít v projektech z reálného života. Například řazení seznamu Pythonu se může hodit při přeskupování dat z API nebo databáze, takže pro koncového uživatele to dává větší smysl.
Pracujete se seznamy v Pythonu? Tady je to, co potřebujete vědět o používání funkce přidání Pythonu při práci se seznamy.
Přečtěte si další
- Programování
- Krajta
- Výukové programy pro kódování

Idowu je vášnivý pro cokoli inteligentního a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne se na šachovnici, ale také rád občas unikne od rutiny. Jeho vášeň ukázat lidem cestu kolem moderních technologií ho motivuje k dalšímu psaní.
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!
Ještě jeden krok…!
V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.