Če razvrstite seznam v Pythonu, lahko razporedite njegove elemente v naraščajočem ali padajočem vrstnem redu.

Namesto da za to piše dolge bloke kode, ima Python vgrajeno metodo, ki vam omogoča razvrščanje elementov na poljubnem seznamu ali matriki. V tem prispevku bomo razložili, kako to storiti.

Kako razvrstiti seznam v Pythonu

Elemente na seznamu ali v polju lahko razvrstite s pomočjo Pythona razvrsti () metoda.

The razvrsti () metoda v Pythonu sprejme dva neobvezna argumenta in sintaksa je videti tako:

list.sort (ključ = funkcija, obratno = True / False)

Privzeto je razvrsti () metoda razvrsti elemente seznama v naraščajočem vrstnem redu:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
natisni (myList)
Izhod: ['A', 'B', 'C', 'D', 'F']

Lahko uporabite vzvratno argument za ogled seznama v padajočem vrstnem redu:

myList = ["C", "D", "B", "A", "F"]
myList.sort (reverse = True)
natisni (myList)
Izhod: ['F', 'D', 'C', 'B', 'A']

Elemente lahko razvrstite tudi na seznam po dolžini vsakega niza.

To naredite tako, da ustvarite funkcijo in jo prenesete v razvrsti () metoda z uporabo neobveznega tipko prepir:

myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (element):
povratna lena (artikel)
myList.sort (reverse = True, key = sortLength)
natisni (myList)
Izhod: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Kako razvrstiti seznam slovarjev v Pythonu

Lahko uporabite razvrsti () metoda za razvrščanje seznama slovarjev.

Razvrstimo naloge v spodnjem slovarju po njihovem času:

myArray = [
{"Naloga": "Pranje", "Čas": 12.00},
{"Naloga": "Nogomet", "Čas": 24.00},
{"Naloga": "Razvrsti", "Čas": 17.00},
{"Naloga": "Koda", "Čas": 15.00}
]
def sortByTime (element):
vrni artikel ["Čas"]
myArray.sort (key = sortByTime)
natisni (myArray)

Ker so vrednosti časa cela števila, zgornji blok kode preuredi matriko glede na čas opravila.

Sorodno: Kako delujejo nizi in seznami v Pythonu

Poleg razvrščanja zgornjega polja po času ga lahko uredite tudi po abecedi z uporabo nalog, ki so nizi.

Če želite razvrstiti po nizu v primeru matrike, morate le spremeniti Čas v oglatem oklepaju do Naloga:

myArray = [
{"Naloga": "Pranje", "Čas": 12.00},
{"Naloga": "Nogomet", "Čas": 24.00},
{"Naloga": "Razvrsti", "Čas": 17.00},
{"Naloga": "Koda", "Čas": 15.00}
]
def sortByTime (element):
vrni element ["Opravilo"]
myArray.sort (key = sortByTime)
natisni (myArray)

Naloge lahko razvrstite tudi v obratnem vrstnem redu z nastavitvijo vzvratno resnično:

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

Lahko tudi uporabite lambda funkcijo s razvrsti () za čistejšo kodo:

myArray.sort (key = lambda getTime: getTime ["Time"])
natisni (myArray)

Kako razvrstiti ugnezdeni seznam Python

Vgnezdeni seznam nabora lahko razvrstite po indeksu vsakega ugnezdenega elementa na tem seznamu.

Na primer, spodnja koda za razvrščanje seznama v naraščajočem vrstnem redu uporablja tretji element v vsakem naboru:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
vrni [2]
Alist.sort (key = sortByThirdIndex)
tisk (Alist)
Izhod: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

V zgornjem izhodu se tretji element v vsakem naboru poveča od nič do dvajset zapored.

Upoštevajte, da to z naborom Python ne deluje, ker ga ne morete indeksirati. Poleg tega mora vsako gnezdo na seznamu pripadati istemu tipu podatkov.

Sorodno: Kaj je nabor v Pythonu in kako ga ustvariti

Če želite razporediti izhodne podatke v padajočem vrstnem redu:

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

Poglejmo, kako je to videti z a lambda funkcija:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = razvrščeno (Alist, ključ = lambda a: a [2])
tiskanje (newList)
Izhod: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kako razvrstiti seznam z metodo Sorted ()

Lahko pa uporabite tudi razvrščeno () metoda.

Čeprav deluje podobno kot razvrsti () metoda ustvari nov razvrščen seznam brez spreminjanja izvirnika. Tudi njegova skladenjska postavitev je nekoliko drugačna.

Sintaksa za razvrščeno () metoda na splošno izgleda takole:

razvrščeno (seznam, ključ = funkcija, obratno = True / False)

Torej, da razvrstite seznam s pomočjo razvrščeno () Za razvrščeni seznam morate ustvariti novo spremenljivko:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
vrni [2]
newList = razvrščeno (Alist, key = getIndex)
tiskanje (newList)
Izhod: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

The razvrščeno () metoda sprejema tudi a lambda funkcija kot njegov ključ:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = razvrščeno (Alist, ključ = lambda a: a [2])
tiskanje (newList)
Izhod: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kje lahko uporabite razvrščanje seznamov?

Za učinkovito programiranje je potrebno dobro razumeti metodo razvrščanja Python. Omogoča vam nadzor nad načinom, kako pride do seznama ali polja, in ga lahko vedno uporabite v resničnih projektih. Na primer, razvrščanje seznama Python je lahko priročno pri preurejanju podatkov iz API-ja ali baze podatkov, zato je za končnega uporabnika bolj smiselno.

E-naslov
Kako dodati seznam v Python

Delo s seznami v Pythonu? Tukaj je tisto, kar morate vedeti o uporabi funkcije dodajanja Python pri delu s seznami.

Preberite Naprej

Sorodne teme
  • Programiranje
  • Python
  • Vadnice za kodiranje
O avtorju
Idowu Omisola (66 objavljenih člankov)

Idowu je navdušen nad vsemi pametnimi tehnologijami in produktivnostjo. V prostem času se poigra s kodiranjem in preklopi na šahovnico, ko mu je dolgčas, a se občasno rad tudi odmakne od rutine. Njegova strast do tega, da ljudem kaže pot okoli sodobne tehnologije, ga spodbuja, da piše več.

Več od Idowu Omisola

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak…!

Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.

.