Jak třídit téměř jakýkoli typ seznamu v Pythonu

Jak třídit téměř jakýkoli typ seznamu v Pythonu

Třídění seznamu v Pythonu vám umožňuje uspořádat jeho položky vzestupně nebo sestupně.





Mí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 třídit seznam v Pythonu

Položky v seznamu nebo poli můžete řadit pomocí Pythonu třídit () metoda.





The třídit () metoda v Pythonu přijímá dva volitelné argumenty a syntaxe vypadá takto:

list.sort(key = function, reverse = True/False)

Standardně je třídit () metoda uspořádá položky seznamu vzestupně:



myList = ['C', 'D', 'B', 'A', 'F']
myList.sort()
print(myList)
Output: ['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(reverse = True)
print(myList)
Output: ['F', 'D', 'C', 'B', 'A']

Položky v seznamu můžete také uspořádat podle délky každého řetězce.





Chcete -li to provést, vytvořte funkci a předejte ji do souboru třídit () metoda pomocí volitelného klíč argument:

myList = ['MUO', 'Python', 'JavaScript', 'Sort', 'Sortlists']
def sortLength(item):
return len(item)
myList.sort(reverse = True, key = sortLength)
print(myList)
Output: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Jak seřadit seznam slovníků v Pythonu

Můžete použít třídit () metoda také k seřazení seznamu slovníků.





Pojďme seřadit úkoly ve slovníku níže podle času:

myArray = [
{'Task': 'Wash', 'Time': 12.00},
{'Task':'Football', 'Time': 24.00},
{'Task':'Sort', 'Time': 17.00},
{'Task':'Code', 'Time': 15.00}
]
def sortByTime(item):
return item['Time']
myArray.sort(key = sortByTime)
print(myArray)

Protož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í pole výše podle času jej můžete také uspořádat abecedně pomocí úkolů, což jsou řetězce.

Chcete -li seřadit podle řetězce v příkladovém poli, stačí změnit Čas v hranaté závorce na Úkol :

myArray = [
{'Task': 'Wash', 'Time': 12.00},
{'Task':'Football', 'Time': 24.00},
{'Task':'Sort', 'Time': 17.00},
{'Task':'Code', 'Time': 15.00}
]
def sortByTime(item):
return item['Task']
myArray.sort(key = sortByTime)
print(myArray)

Úkoly můžete také řadit v opačném pořadí nastavením zvrátit pravda:

myArray.sort(key = sortByTime, reverse = True)

Můžete také použijte funkci lambda s třídit () pro čistší kód:

myArray.sort(key = lambda getTime: getTime['Time'])
print(myArray)

Jak seřadit vnořený seznam Python

Vnořený seznam n -tic můžete seřadit podle indexu každého vnořeného prvku v tomto seznamu.

Níže uvedený kód například používá třetí položku v každé řazené kolekci 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):
return a[2]
Alist.sort(key = sortByThirdIndex)
print(Alist)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Ve výše uvedeném výstupu se třetí položka v každé n -tici zvyšuje od nuly do dvaceti za sebou.

U sady Python to nefunguje, protože ji nemůžete indexovat. Každé hnízdo v seznamu musí navíc patřit stejnému datovému typu.

Související: Co je sada v Pythonu a jak ji vytvořit

jak získat staré zprávy na iphone

Chcete -li však uspořádat výstup sestupně:

Alist.sort(key = getIndex, reverse = True)
print(Alist)
Output: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Podívejme se, jak to vypadá s lambda fungovat také:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(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.

Ačkoli to funguje podobně jako třídit () způsob, vytvoří nový seřazený seznam bez úpravy původního. Rozložení syntaxe se také mírně liší.

Syntaxe pro seřazeno () metoda obecně vypadá takto:

sorted(list, key = function, reverse = True/False)

Seřadit seznam pomocí seřazeno () metodu, musíte pro seřazený seznam vytvořit novou proměnnou:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex(a):
return a[2]
newList = sorted(Alist, key = getIndex)
print(newList)
Output: [(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 fungovat jako jeho klíč:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(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é důkladné pochopení metody řazení Python. Umožňuje vám řídit způsob procházení seznamu nebo pole a vždy jej můžete použít v reálných projektech. Například řazení seznamu Pythonu může přijít vhod při přeskupování dat z API nebo databáze, takže pro koncového uživatele to dává větší smysl.

Podíl Podíl tweet E-mailem Jak připojit seznam v Pythonu

Práce se seznamy v Pythonu? Zde je to, co potřebujete vědět o používání funkce přidávání Pythonu při práci se seznamy.

Číst dále
Související témata
  • Programování
  • Krajta
  • Návody na kódování
O autorovi Idisou Omisola(94 publikovaných článků)

Idowu je zapálený pro cokoli chytrého a produktivního. Ve svém volném čase si hraje s kódováním a když se nudí, přepne na šachovnici, ale také se rád jednou za čas odpoutá od rutiny. Jeho vášeň ukazovat lidem cestu kolem moderních technologií ho motivuje psát více.

Více od Idowu Omisola

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru