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.