Ř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:

instagram viewer
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.

E-mailem
Jak připojit seznam v Pythonu

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ší

Související témata
  • Programování
  • Krajta
  • Výukové programy pro kódování
O autorovi
Idowu Omisola (Publikováno 66 článků)

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í.

Více od Idowu Omisola

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.

.