Kako sortirati popise u Pythonu

How Sort Lists Python



Ovaj članak će obuhvatiti vodič za sortiranje popisa u Pythonu. Objekt popisa Python zbirka je jedne ili više stavki odvojenih zarezima. To je iterabilni objekt i njegovim elementima se može pristupiti ponavljanjem po popisu pomoću petlji i drugih izraza. Python popis možete sortirati pomoću sortiranja i sortiranih metoda, obje su objašnjene u članku. Svi uzorci koda u ovom članku testirani su s Pythonom 3.9.5 u Ubuntu 21.04.

Metoda razvrstavanja

Način sortiranja sortira popis na mjestu. Drugim riječima, izmijenit će objekt popisa koji ćete sortirati i preurediti njegov element. Ako vam nije potreban izvorni popis i ne smeta vam što popis mijenja svoj redoslijed elemenata, ovo je najučinkovitija metoda u Pythonu za sortiranje popisa. Razmotrimo ovaj primjer:







the= [2, 8, 6, 4]

.vrsta()

ispisati (the)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:



[2, 4, 6, 8]

Prva naredba u uzorku koda definira popis. Zatim se na popisu poziva metoda sortiranja. Kada ispisujete popis, možete vidjeti da je izvorni redoslijed popisa promijenjen.



Prema zadanim postavkama, Python sortira popis uzlaznim redoslijedom. Ako želite sortirati popis opadajućim redoslijedom, upotrijebite obrnutu metodu, kao što je prikazano u donjem uzorku koda:





the= [2, 8, 6, 4]

.vrsta()

.obrnuti()

ispisati (the)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:

[8, 6, 4, 2]

Obrnuta metoda također mijenja Python popis na mjestu bez stvaranja novog popisa.



Ako vaš popis sadrži nizove elemenata, pozivanje metode sortiranja na njemu poredat će ga po abecedi gdje su prvi poredani simboli i brojevi. Pogledajte uzorak koda u nastavku:

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

.vrsta()
ispisati (the)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:

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

Također možete koristiti obrnutu metodu na popisu koji sadrži elemente niza.

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

.vrsta()

.obrnuti()

ispisati (the)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:

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

Sortirana metoda

Metoda sortiranja također sortira Python popis, na isti način kao i metoda sortiranja. Međutim, umjesto izmjene izvornog popisa, on vraća novi popis tako da vaš izvorni popis ostane netaknut u slučaju da ga želite ponovno koristiti. Razmotrite donji kod:

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

popis2= sortirano(popis1)

ispisati (popis1,popis2)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:

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

U izlazu možete vidjeti da je list1 netaknut i da list2 sada ima razvrstane elemente. Također možete koristiti obrnutu metodu na popisu 2 za promjenu metodologije naručivanja.

Obrnuti argument

Argument obrnuto možete koristiti kao alternativu obrnutoj funkciji u metodama sortiranja i sortiranja kako biste dobili sortirani popis u opadajućem redoslijedu. Samo unesite vrijednost True za promjenu redoslijeda sortiranja:

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

popis2= sortirano(popis1,obrnuti=Pravi)

ispisati (popis1,popis2)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:

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

Korištenje funkcije ključa za specificiranje vlastite logike za sortiranje elemenata popisa

U metodama sortiranja i sortiranja možete navesti dodatni argument ključa koji za svoju vrijednost uzima funkciju koja se može pozvati. Ovom ključnom argumentu može se dodijeliti postojeća funkcija iz ugrađenih Python modula ili možete opskrbiti vlastitu funkciju prilagođenom logikom. Pogledajte uzorak koda u nastavku:

popis1= ['a B C D E', 'xyz', 'ijkl']

popis2= sortirano(popis1,ključ=len)

ispisati (popis1,popis2)

popis1.vrsta(ključ=len)

ispisati (popis1)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:

['a B C D E', 'xyz', 'ijkl'] ['xyz', 'ijkl', 'a B C D E']

['xyz', 'ijkl', 'a B C D E']

Uzorak koda ilustrira upotrebu ključnog argumenta u metodama sortiranja i sortiranja. Funkcija koja mu se daje naziva se len koja određuje duljinu objekta niza ili iterabilnog. Funkcija ili pozivljiva izvorno bi trebala uzeti samo jedan argument. Dodjeljujete ga ključnom argumentu bez upotrebe zagrada. Funkcija koja se može dozvati ključnom argumentu poziva se na svaki element popisa. Vrijednosti vraćene iz ove pozivne metode tada se koriste kao ključ za sortiranje popisa. Dakle, opskrbom funkcije len ključnom argumentu razvrstavaju se elementi popisa prema njihovom duljini, to jest od najkraćeg do najdužeg. Kao što je ranije rečeno, uvijek možete koristiti obrnutu metodu da biste obrnuli metodologiju sortiranja.

Također možete koristiti vlastitu prilagođenu funkciju ili lambda funkcije s jednim linkom koje vraćaju vrijednost jednog izraza. Pogledajte uzorak koda u nastavku gdje se na popisu nalaze hrpe trenutačnog inventara gajbi s voćem:

popis1= [('mango', 99), ('naranča', 51), ('banana', 76)]

popis1.vrsta(ključ=lambdainventar: inventar[1])

ispisati (popis1)

Nakon pokretanja gornjeg uzorka koda, trebali biste dobiti sljedeći izlaz:

[('naranča', 51), ('banana', 76), ('mango', 99)]

Lambda funkcija je opremljena popisom argumenata, koji je svaki element popisa u obliku tuplea. Zatim vraća drugi element svake torte kao ključ (u indeksu 1). Funkcija sortiranja zatim sortira sve torke po svom drugom elementu u rastućem redoslijedu. Također možete koristiti funkciju obrnutog ili obrnuti argument na krajnjem rezultatu za promjenu redoslijeda sortiranja.

Zaključak

Ovo su neki načini pomoću kojih možete sortirati sadržaj iterabilnog popisa u Pythonu. Ključni argument omogućuje vam da napišete vlastitu prilagođenu logiku razvrstavanja, prikladnu za aplikacije koje mogu imati drugačije potrebe od ugrađenih metoda sortiranja.