Ako zoradiť takmer akýkoľvek typ zoznamu v Pythone

Ako zoradiť takmer akýkoľvek typ zoznamu v Pythone

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 vstavanú metódu, ktorá vám umožňuje triediť položky v ľubovoľnom zozname alebo poli. V tomto príspevku vysvetlíme, ako to urobiť.





Ako zoradiť zoznam v Pythone

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





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

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

Štandardne je triediť () metóda usporiada položky zoznamu vzostupne:



myList = ['C', 'D', 'B', 'A', 'F']
myList.sort()
print(myList)
Output: ['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)
Output: ['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 zadajte ju do súboru triediť () metóda pomocou voliteľného kľúč 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']

Ako zoradiť zoznam slovníkov v Pythone

Môžete použiť triediť () metóda na triedenie zoznamu slovníkov.





Zoradme úlohy v nižšie uvedenom slovníku podľa č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)

Pretože hodnoty času sú celé čísla, vyššie uvedený blok kódu usporiada pole na základe času úlohy.

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

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

Ak chcete zoradiť podľa reťazca v vzorovom poli, stačí zmeniť Čas v hranatej zátvorke do Úloha :

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)

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

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

Môžete tiež použite funkciu lambda s triediť () 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 triediť podľa indexu každého vnoreného prvku v tomto zozname.

Nasledujúci kód napríklad 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):
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)]

Vo vyššie uvedenom výstupe sa tretia položka v každej n -tici zvyšuje postupne od nuly do dvadsať.

Všimnite si toho, že to nefunguje so sadou Pythonu, pretože ju nemôžete indexovať. Každé hniezdo v zozname musí navyše patriť rovnakému typu údajov.

Súvisiace články: Čo je to sada v Pythone a ako ju vytvoriť

ako presunúť nainštalované programy na inú jednotku Windows 10

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

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

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

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)]

Ako zoradiť zoznam pomocou metódy Sorted ()

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

Aj keď to funguje podobne ako triediť () metóda, vytvorí nový triedený zoznam bez zmeny pôvodného. Jeho rozloženie syntaxe sa tiež mierne líši.

Syntax pre súbor zoradené () metóda vo všeobecnosti vyzerá takto:

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

Ak chcete zoznam zoradiť pomocou zoradené () musíte pre triedený zoznam vytvoriť novú premennú:

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 zoradené () metóda taktiež akceptuje a lambda fungovať ako jeho kľúč:

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žiť triedenie zoznamov?

Na efektívne programovanie je potrebná solídna znalosť metódy triedenia Python. Umožňuje vám ovládať, ako sa zoznam alebo pole dostane, a môžete ho kedykoľvek použiť v skutočných projektoch. Zoradenie zoznamu v Pythone môže byť napríklad užitočné pri preskupovaní údajov z rozhrania API alebo databázy, takže má pre koncového používateľa väčší zmysel.

zdieľam zdieľam Tweet E -mail Ako pripojiť zoznam v Pythone

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

Čítajte ďalej
Súvisiace témy
  • Programovanie
  • Python
  • Návody na kódovanie
O autorovi Idisou Omisola(94 publikovaných článkov)

Idowu je zanietený pre čokoľvek, čo sa týka inteligentných technológií a produktivity. Vo svojom voľnom čase sa hrá s kódovaním a keď sa nudí, prejde na šachovnicu, ale tiež rád, keď sa raz za čas odtrhne od rutiny. Jeho vášeň ukazovať ľuďom cestu okolo moderných technológií ho motivuje písať viac.

Viac od Idowu Omisola

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber