Zoradenie zoznamu v Pythone vám umožňuje usporiadať jeho položky vzostupne alebo zostupne.

Namiesto písania dlhých blokov kódu na to má Python zabudovanú metódu, ktorá umožňuje triediť položky v ľubovoľnom zozname alebo poli. V tomto príspevku vám vysvetlíme, ako na to.

Ako zoradiť zoznam v Pythone

Položky v zozname alebo poli môžete triediť pomocou Pythonu sort () metóda.

The sort () metóda v Pythone akceptuje dva voliteľné argumenty a syntax vyzerá takto:

list.sort (klávesa = funkcia, reverz = True / False)

V predvolenom nastavení je sort () metóda usporiada položky zoznamu vzostupne:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
print (myList)
Výstup: ['A', 'B', 'C', 'D', 'F']

Môžete použiť obrátiť argument na zobrazenie zoznamu v zostupnom poradí:

myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
print (myList)
Výstup: ['F', 'D', 'C', 'B', 'A']

Položky v zozname môžete tiež usporiadať podľa dĺžky každého reťazca.

Ak to chcete urobiť, vytvorte funkciu a vložte ju do sort () metóda pomocou voliteľného kľúč argument:

instagram viewer
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (položka):
návratová dĺžka (položka)
myList.sort (reverse = True, key = sortLength)
print (myList)
Výstup: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Ako triediť zoznam slovníkov v Pythone

Môžete použiť sort () spôsob triedenia aj zoznamu slovníkov.

Zoraďme úlohy v slovníku nižšie podľa času:

myArray = [
{"Úloha": "Umývanie", "Čas": 12.00},
{"Úloha": "Futbal", "Čas": 24.00},
{"Úloha": "Zoradiť", "Čas": 17,00},
{"Úloha": "Kód", "Čas": 15,00}
]
def sortByTime (položka):
vrátiť položku ["Čas"]
myArray.sort (key = sortByTime)
print (myArray)

Pretože hodnoty času sú celé čísla, vyššie uvedený blok kódu usporiada pole podľa času úlohy.

Súvisiace: Ako polia a zoznamy fungujú v Pythone

Okrem vyššie zoradeného poľa podľa času ho môžete zoradiť aj abecedne pomocou úloh, ktoré sú reťazcami.

Ak chcete zoradiť podľa reťazca v príklade poľa, stačí zmeniť Čas v hranatej zátvorke na Úloha:

myArray = [
{"Úloha": "Umývanie", "Čas": 12.00},
{"Úloha": "Futbal", "Čas": 24.00},
{"Úloha": "Zoradiť", "Čas": 17,00},
{"Úloha": "Kód", "Čas": 15,00}
]
def sortByTime (položka):
vrátiť položku [„Úloha“]
myArray.sort (key = sortByTime)
print (myArray)

Úlohy môžete tiež zoradiť v opačnom poradí podľa nastavenia obrátiť pravda:

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

Môžete tiež použite funkciu lambda s sort () pre čistejší kód:

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

Ako zoradiť vnorený zoznam Python

Vnorený zoznam n-tíc môžete zoradiť podľa indexu každého vnoreného prvku v tomto zozname.

Napríklad nižšie uvedený kód používa tretiu položku v každej n-tici na zoradenie zoznamu vo vzostupnom poradí:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
vrátiť [2]
Alist.sort (key = sortByThirdIndex)
tlač (Alist)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Vo výstupe vyššie sa tretia položka v každej n-tici zvyšuje z nuly na dvadsať za sebou.

Upozorňujeme, že toto nefunguje so súpravou Python, pretože ju nemôžete indexovať. Okrem toho musí každé hniezdo v zozname patriť k rovnakému dátovému typu.

Súvisiace: Čo je množina v Pythone a ako ju vytvoriť

Ak však chcete usporiadať výstup zostupne:

Alist.sort (key = getIndex, reverse = True)
tlač (Alist)
Výstup: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Pozrime sa, ako to vyzerá s a lambda funkcia tiež:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = triedené (Alist, key = lambda a: a [2])
print (newList)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Ako triediť zoznam pomocou metódy Sorted ()

Prípadne môžete použiť zoradené () metóda.

Aj keď to funguje podobne ako sort () metódou vytvorí nový triedený zoznam bez úpravy pôvodného. Jeho rozloženie syntaxe je tiež mierne odlišné.

Syntax pre zoradené () metóda všeobecne vyzerá takto:

zoradené (zoznam, kláves = funkcia, reverz = True / False)

Takže aby ste zoradili zoznam pomocou zoradené () metódou, musíte vytvoriť novú premennú pre zoradený zoznam:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
vrátiť [2]
newList = zoradené (Alist, key = getIndex)
print (newList)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

The zoradené () metóda akceptuje a lambda funkcia ako jej kľúč:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = triedené (Alist, key = lambda a: a [2])
print (newList)
Výstup: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kde môžete použiť triedenie zoznamov?

Pre efektívne programovanie je nevyhnutné pevné pochopenie metódy triedenia v Pythone. Umožňuje vám ovládať, ako prechádza zoznam alebo pole, a kedykoľvek ho môžete použiť v projektoch z reálneho života. Napríklad zoradenie zoznamu Python môže byť užitočné pri zmene usporiadania údajov z API alebo databázy, takže pre koncového používateľa má väčší zmysel.

Email
Ako pridať zoznam v Pythone

Pracujete so zoznamami v Pythone? Tu je to, čo potrebujete vedieť o používaní funkcie pridania Pythonu pri práci so zoznamami.

Prečítajte si Ďalej

Súvisiace témy
  • Programovanie
  • Python
  • Výukové programy pre kódovanie
O autorovi
Idowu Omisola (Publikovaných 66 článkov)

Idowu je vášnivý pre čokoľvek inteligentné technológie a produktivitu. Vo voľnom čase sa hrá s kódovaním a keď sa nudí, prepne na šachovnicu, ale tiež rád občas vybočuje z rutiny. Jeho vášeň ukázať ľuďom cestu v moderných technológiách ho motivuje k tomu, aby písal viac.

Viac od Idowu Omisola

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.