Kako razvrstiti sezname v Pythonu

How Sort Lists Python



Ta članek bo zajemal vodnik po razvrščanju seznamov v Pythonu. Objekt seznama Python je zbirka enega ali več elementov, ločenih z vejicami. Je predmet, ki ga je mogoče ponoviti, do njegovih elementov pa lahko dostopate s ponovitvijo po seznamu z uporabo stavkov zanke in drugih izrazov. Seznam Python lahko razvrstite z razvrščanjem in razvrščenimi metodami, oba sta pojasnjena v članku. Vsi vzorci kod v tem članku so preizkušeni s Pythonom 3.9.5 v Ubuntu 21.04.

Metoda razvrščanja

Način razvrščanja razvrsti seznam na mestu. Z drugimi besedami, spremenil bo predmet seznama, ki ga boste razvrstili, in preuredil njegov element. Če ne potrebujete izvirnega seznama in vas ne moti, da seznam spremeni svoj vrstni red elementov, je to najučinkovitejša metoda razvrščanja seznama v Pythonu. Razmislite o tem primeru:







the= [2, 8, 6, 4]

the.razvrsti()

tiskanje (the)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:



[2, 4, 6, 8]

Prva izjava v vzorcu kode definira seznam. Nato se na seznamu pokliče metoda razvrščanja. Ko natisnete seznam, lahko vidite, da je bil vrstni red prvotnega seznama spremenjen.



Python privzeto razvrsti seznam po naraščajočem vrstnem redu. Če želite seznam razvrstiti po padajočem vrstnem redu, uporabite obratno metodo, kot je prikazano v spodnjem vzorcu kode:





the= [2, 8, 6, 4]

the.razvrsti()

the.vzvratno()

tiskanje (the)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

[8, 6, 4, 2]

Obratna metoda spremeni tudi seznam Python na mestu, ne da bi ustvarila nov seznam.



Če vaš seznam vsebuje elemente niza, ga bo klicanje metode razvrščanja razvrstilo po abecedi, kjer so najprej razvrščeni simboli in številke. Oglejte si spodnji vzorec kode:

the= ['s', 'do', 'S', '4', '#']

the.razvrsti()
tiskanje (the)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

['#', '4', 'do', 's', 'S']

Na seznamu, ki vsebuje elemente niza, lahko uporabite tudi obratno metodo.

the= ['s', 'do', 'S', '4', '#']

the.razvrsti()

the.vzvratno()

tiskanje (the)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

['S', 's', 'do', '4', '#']

Razvrščena metoda

Razvrščena metoda razvršča tudi seznam Python na enak način kot metoda sortiranja. Namesto da spremeni prvotni seznam, vrne nov seznam, tako da vaš prvotni seznam ostane nedotaknjen, če ga želite znova uporabiti. Razmislite o spodnji kodi:

seznam1= ['s', 'do', 'S', '4', '#']

seznam2= razvrščeno(seznam1)

tiskanje (seznam1,seznam2)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

['s', 'do', 'S', '4', '#'] ['#', '4', 'do', 's', 'S']

V izhodu lahko vidite, da je list1 nedotaknjen in da ima list2 zdaj razvrščene elemente. Za spremembo metodologije naročanja lahko uporabite tudi obratno metodo na seznamu2.

Obratni argument

Obratni argument lahko uporabite kot alternativo obratni funkciji tako pri metodah razvrščanja kot pri razvrščanju, da dobite razvrščen seznam po padajočem vrstnem redu. Če želite spremeniti vrstni red razvrščanja, mu vnesite vrednost True:

seznam1= ['s', 'do', 'S', '4', '#']

seznam2= razvrščeno(seznam1,vzvratno=Prav)

tiskanje (seznam1,seznam2)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

['s', 'do', 'S', '4', '#'] ['S', 's', 'do', '4', '#']

Uporaba tipke za določanje lastne logike za razvrščanje elementov seznama

V metodah razvrščanja in razvrščanja lahko podate dodaten argument ključa, ki za svojo vrednost vzame funkcijo, ki jo je mogoče poklicati. Temu ključnemu argumentu lahko dodelite obstoječo funkcijo iz vgrajenih modulov Python ali pa svojo funkcijo oskrbite s logiko po meri. Oglejte si spodnji vzorec kode:

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

seznam2= razvrščeno(seznam1,ključ=len)

tiskanje (seznam1,seznam2)

seznam1.razvrsti(ključ=len)

tiskanje (seznam1)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

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

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

Vzorec kode ponazarja uporabo ključnega argumenta v razvrščenih in razvrščenih metodah. Funkcija, ki ji je dana, se imenuje len, ki določa dolžino predmeta niza ali ponovljivega. Funkcija ali klicljiva mora prvotno sprejeti le en argument. Dodelite ga ključnemu argumentu, ne da bi uporabili oklepaje. Funkcija, ki jo je mogoče poklicati, predložena argumentu key, se pokliče pri vsakem elementu seznama. Vrednosti, vrnjene s te metode, ki jo je mogoče poklicati, se nato uporabijo kot ključ za razvrščanje seznama. Zato dobava funkcije len ključnemu argumentu razvrsti elemente seznama po vrstnem redu njihove dolžine, torej od najkrajšega do najdaljšega. Kot smo že omenili, lahko za obratno metodologijo razvrščanja vedno uporabite obratno metodo.

Uporabite lahko tudi lastno funkcijo po meri ali lambda funkcije z eno podlogo, ki vrnejo vrednost enega samega izraza. Oglejte si spodnji vzorec kode, kjer je na seznamu kopica trenutnega inventarja zabojev s sadjem:

seznam1= [('mango', 99), ('oranžna', 51), ('banana', 76)]

seznam1.razvrsti(ključ=lambdainventar: popis[1])

tiskanje (seznam1)

Ko zaženete zgornji vzorec kode, bi morali dobiti naslednji izhod:

[('oranžna', 51), ('banana', 76), ('mango', 99)]

Lambda funkcija je opremljena z popisom argumentov, ki je vsak element seznama v obliki nabora. Nato vrne drugi element vsakega nabora kot ključ (pri indeksu 1). Funkcija razvrščanja nato vse zaporedje razvrsti po drugem elementu v naraščajočem vrstnem redu. Za obračanje vrstnega reda razvrščanja lahko uporabite tudi funkcijo obrat ali argument obratno na končnem rezultatu.

Zaključek

To je nekaj načinov, s katerimi lahko razvrstite vsebino iterabilnega seznama v Pythonu. Ključni argument vam omogoča, da napišete lastno logiko razvrščanja po meri, primerno za aplikacije, ki imajo lahko drugačne potrebe kot vgrajene metode razvrščanja.