Szinte bármilyen típusú lista rendezése a Pythonban

Szinte bármilyen típusú lista rendezése a Pythonban

A Python listájának rendezése lehetővé teszi, hogy elemeit növekvő vagy csökkenő sorrendbe rendezze.





Ahelyett, hogy hosszú kódblokkokat írna ehhez, a Python beépített módszerrel rendelkezik, amely lehetővé teszi az elemek rendezését bármely listában vagy tömbben. Ebben a bejegyzésben elmagyarázzuk, hogyan kell ezt megtenni.





Lista rendezése a Pythonban

A Python segítségével rendezheti a lista vagy tömb elemeit fajta() módszer.





Az fajta() metódus a Pythonban két opcionális argumentumot fogad el, és a szintaxis így néz ki:

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

Alapértelmezés szerint a fajta() módszer a lista elemeit növekvő sorrendbe rendezi:



myList = ['C', 'D', 'B', 'A', 'F']
myList.sort()
print(myList)
Output: ['A', 'B', 'C', 'D', 'F']

Használhatja a fordított érv a lista csökkenő sorrendben való megtekintéséhez:

myList = ['C', 'D', 'B', 'A', 'F']
myList.sort(reverse = True)
print(myList)
Output: ['F', 'D', 'C', 'B', 'A']

A lista elemeit az egyes karakterláncok hossza szerint is elrendezheti.





Ehhez hozzon létre egy függvényt, és adja át a fajta() módszer az opcionális használatával kulcs érv:

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

Szótárak listájának rendezése a Pythonban

Használhatja a fajta() módszer a szótárak listájának rendezésére is.





Soroljuk fel az alábbi szótárban található feladatokat idő szerint:

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)

Mivel az idő értékei egész számok, a fenti kódblokk a feladat ideje alapján átrendezi a tömböt.

Összefüggő: Hogyan működnek a tömbök és listák a Pythonban

A fenti tömb idő szerinti rendezése mellett betűrendben is elrendezheti a feladatokat, amelyek karakterláncok.

A példa tömb karakterlánc szerinti rendezéséhez csak módosítania kell Idő a szögletes zárójelben Feladat :

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)

A beállításokkal fordított sorrendben is rendezheti a feladatokat fordított igaz:

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

Te is használjon lambda függvényt val vel fajta() a tisztább kódért:

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

Beágyazott Python -lista rendezése

A sorok beágyazott listáját rendezheti a lista minden egyes beágyazott elemének indexe alapján.

Például az alábbi kód minden sor harmadik elemét használja a lista növekvő sorrendbe rendezéséhez:

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

A fenti kimenetben minden egyes sor harmadik eleme nulláról húszra nő egymást követően.

Ne feledje, hogy ez nem működik Python -készlettel, mivel nem tudja indexelni. Ráadásul a lista minden fészkének ugyanabba az adattípusba kell tartoznia.

Kapcsolódó: Mi a készlet a Pythonban és hogyan hozhat létre egyet

hogyan szerezhet több nézetet a twitch -en

A kimenet csökkenő sorrendbe állításához azonban:

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

Nézzük meg, hogyan néz ki ez a lambda funkció is:

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

Lista rendezése a Sorted () módszerrel

Alternatív megoldásként használhatja a rendezett () módszer.

Bár hasonlóan működik, mint a fajta() módszer, új rendezett listát hoz létre az eredeti módosítása nélkül. Szintaktikai elrendezése is kissé eltér.

A szintaxisa a rendezett () a módszer általában így néz ki:

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

Tehát a lista rendezéséhez használja a rendezett () metódust, létre kell hoznia egy új változót a rendezett listához:

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

Az rendezett () módszer is elfogadja a lambda kulcsként funkcionál:

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

Hol lehet alkalmazni a listák rendezését?

A hatékony programozáshoz a Python rendezési módszer alapos ismerete szükséges. Segítségével szabályozhatja a lista vagy tömb megjelenésének módját, és mindig alkalmazhatja a valós projektekben. Például a Python-lista rendezése jól jöhet, ha az API-ból vagy adatbázisból származó adatokat átrendezi, így értelmesebb a végfelhasználó számára.

Részvény Részvény Csipog Email Lista hozzáfűzése Pythonban

Listákkal dolgozik a Pythonban? Íme, mit kell tudnia a Python append funkció használatáról, ha listákkal dolgozik.

Olvassa tovább
Kapcsolódó témák
  • Programozás
  • Piton
  • Kódolási oktatóanyagok
A szerzőről Idisou Omisola(94 cikk megjelent)

Idowu szenvedélyes minden intelligens technológia és termelékenység iránt. Szabadidejében kódolással játszik, és ha unatkozik, sakktáblára vált, de szeret időnként elszakadni a rutintól. Szenvedélye, hogy megmutassa az embereknek a modern technológia körüli utat, arra ösztönzi, hogy többet írjon.

Továbbiak Idowu Omisola -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide