Hogyan rendezhetjük a listákat a Pythonban

How Sort Lists Python



Ez a cikk egy útmutatót tartalmaz a Python listák rendezéséről. A Python listaobjektum egy vagy több vesszővel elválasztott elem gyűjteménye. Ez egy megismételhető objektum, és elemei a listán való ismétléssel ciklusutasítások és más kifejezések használatával érhetők el. A Python listát rendezési és rendezési módszerekkel rendezheti, mindkettőt a cikk ismerteti. A cikkben található összes kódmintát a Python 3.9.5 segítségével tesztelték az Ubuntu 21.04 rendszerben.

Rendezési módszer

A rendezési módszer a listát a helyén rendezi. Más szóval, módosítani fogja a listázni kívánt objektumot, és rendezni fogja annak elemét. Ha nem igényli az eredeti listát, és nem bánja, hogy a lista megváltoztatja az elemek sorrendjét a helyén, akkor ez a leghatékonyabb módszer a lista rendezésére a Pythonban. Tekintsük ezt a példát:







az= [2, 8, 6, 4]

az.fajta()

nyomtatás (az)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:



[2, 4, 6, 8]

A kódminta első mondata egy listát határoz meg. Ezután a rendezési módszert hívják a listára. A lista kinyomtatásakor láthatja, hogy az eredeti lista sorrendje megváltozott.



Alapértelmezés szerint a Python növekvő sorrendbe rendezi a listát. Ha csökkenő sorrendben szeretné rendezni a listát, használja a fordított módszert, amint az az alábbi kódmintában látható:





az= [2, 8, 6, 4]

az.fajta()

az.fordított()

nyomtatás (az)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:

[8, 6, 4, 2]

A fordított módszer a Python listát a helyén megváltoztatja új lista létrehozása nélkül.



Ha a listája karakterlánc -elemeket tartalmaz, akkor a rendezési módszer meghívása betűrendben rendeli oda, ahol a szimbólumok és a számok vannak sorrendben. Nézze meg az alábbi kódmintát:

az= ['s', 'nak nek', 'Val vel', '4', '#']

az.fajta()
nyomtatás (az)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:

['#', '4', 'nak nek', 's', 'Val vel']

Fordított módszert is használhat egy karakterlánc -elemeket tartalmazó listán.

az= ['s', 'nak nek', 'Val vel', '4', '#']

az.fajta()

az.fordított()

nyomtatás (az)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:

['Val vel', 's', 'nak nek', '4', '#']

Rendezett módszer

A rendezett módszer a Python listát is rendezi, ugyanúgy, mint a rendezési módszert. Az eredeti lista módosítása helyett azonban új listát ad vissza, így az eredeti lista érintetlen marad, ha újra fel szeretné használni. Tekintsük az alábbi kódot:

lista1= ['s', 'nak nek', 'Val vel', '4', '#']

lista2= rendezett(lista1)

nyomtatás (lista1,lista2)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:

['s', 'nak nek', 'Val vel', '4', '#'] ['#', '4', 'nak nek', 's', 'Val vel']

A kimeneten látható, hogy a lista1 ép, és a lista2 most rendezett elemeket tartalmaz. A lista2 fordított módszerével is megváltoztathatja a rendelési módszert.

Fordított érv

A fordított argumentumot használhatja a fordított funkció alternatívájaként mind rendezési, mind rendezési módszerekben, hogy csökkenő sorrendben kapjon rendezett listát. Csak adja meg a valódi értéket a rendezés sorrendjének megváltoztatásához:

lista1= ['s', 'nak nek', 'Val vel', '4', '#']

lista2= rendezett(lista1,fordított=Igaz)

nyomtatás (lista1,lista2)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:

['s', 'nak nek', 'Val vel', '4', '#'] ['Val vel', 's', 'nak nek', '4', '#']

A kulcsfunkció használata saját logika megadásához a lista elemeinek rendezéséhez

Mind a rendezési, mind a rendezési módszerekben megadhat egy további kulcsfontosságú argumentumot, amely lehívható függvényt vesz fel értékének. Ez a kulcsfontosságú argumentum hozzárendelhető egy meglévő függvényhez a beépített Python modulokból, vagy saját függvényt is elláthat egyéni logikával. Nézze meg az alábbi kódmintát:

lista1= ['abcde', 'xyz', 'ijkl']

lista2= rendezett(lista1,kulcs=len)

nyomtatás (lista1,lista2)

lista1.fajta(kulcs=len)

nyomtatás (lista1)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:

['abcde', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'abcde']

['xyz', 'ijkl', 'abcde']

A kódminta szemlélteti a kulcs argumentumok használatát mind rendezett, mind rendezési módszerekben. A hozzá tartozó függvényt lennek hívják, amely meghatározza a karakterlánc objektumának hosszát vagy az iterálhatót. A függvénynek vagy a meghívhatónak eredetileg csak egy argumentumot kell tartalmaznia. A kulcs argumentumhoz zárójelek használata nélkül rendel hozzá. A kulcs argumentumhoz tartozó lehívható függvényt a lista minden eleme meghívja. Az ebből a lehívható módszerből visszaadott értékeket ezután kulcsként használják a lista rendezéséhez. Ezért a len függvénynek a kulcs argumentumhoz való hozzárendelése a lista elemeit a hosszúságuk sorrendjében rendezi, azaz a legrövidebbtől a leghosszabbig. Amint azt korábban említettük, mindig használhatja a fordított módszert a rendezési módszer megfordításához.

Használhat saját egyéni függvényt vagy egysoros lambda függvényeket is, amelyek egyetlen kifejezés értékét adják vissza. Vessen egy pillantást az alábbi kódmintára, ahol egy lista tartalmazza a gyümölcsládák aktuális készletét:

lista1= [('mangó', 99), ('narancssárga', 51), ('banán', 76)]

lista1.fajta(kulcs=lambdaleltár: leltár[1])

nyomtatás (lista1)

A fenti kódminta futtatása után a következő kimenetet kell kapnia:

[('narancssárga', 51), ('banán', 76), ('mangó', 99)]

A lambda függvényt argumentumleltárral látjuk el, amely a lista egyes elemei tuple formában. Ezután kulcsként adja vissza az egyes sorszámok második elemét (az 1. indexnél). A rendezés függvény ezután növekvő sorrendben rendezi az összes példányt a második eleme szerint. A rendezés sorrendjének megfordításához a fordított függvényt vagy a fordított argumentumot is használhatja a végeredményen.

Következtetés

Ez néhány módszer, amellyel rendezheti az iterálható lista tartalmát a Pythonban. A legfontosabb érv lehetővé teszi, hogy saját egyéni rendezési logikát írjon, amely alkalmas olyan alkalmazásokhoz, amelyeknek eltérő igényeik lehetnek, mint a beépített rendezési módszerek.