Sortiranje popisa u Pythonu omogućuje vam slaganje njegovih stavki u rastućem ili silaznom redoslijedu.

Umjesto pisanja dugih blokova koda za to, Python ima ugrađenu metodu koja vam omogućuje sortiranje stavki na bilo kojem popisu ili nizu. Objasnit ćemo kako to učiniti u ovom postu.

Kako sortirati popis u Pythonu

Stavke na popisu ili u nizu možete sortirati pomoću Pythona vrsta() metoda.

The vrsta() metoda u Pythonu prihvaća dva neobavezna argumenta i sintaksa izgleda ovako:

list.sort (ključ = funkcija, obrnuto = Tačno / Netačno)

Prema zadanim postavkama vrsta() metoda raspoređuje stavke popisa u rastućem redoslijedu:

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

Možete koristiti obrnuti argument za prikaz popisa u padajućem redoslijedu:

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

Stavke možete poredati i na popisu prema duljini svakog niza.

Da biste to učinili, stvorite funkciju i prenesite je u vrsta() metoda pomoću neobavezne ključ argument:

instagram viewer
myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (stavka):
povrat lena (stavka)
myList.sort (reverse = True, key = sortLength)
ispis (myList)
Izlaz: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Kako sortirati popis rječnika u Pythonu

Možete koristiti vrsta() metoda za sortiranje popisa rječnika.

Razvrstajmo zadatke u donjem rječniku prema njihovom vremenu:

myArray = [
{"Zadatak": "Pranje", "Vrijeme": 12.00},
{"Zadatak": "Nogomet", "Vrijeme": 24.00},
{"Zadatak": "Poredaj", "Vrijeme": 17.00},
{"Zadatak": "Šifra", "Vrijeme": 15.00}
]
def sortByTime (stavka):
vrati stavku ["Vrijeme"]
myArray.sort (key = sortByTime)
ispis (myArray)

Budući da su vrijednosti vremena cjelobrojne, gornji blok koda preuređuje niz na temelju vremena zadatka.

Povezano: Kako nizovi i popisi rade u Pythonu

Osim sortiranja gornjeg niza po vremenu, možete ga poredati i po abecedi pomoću zadataka koji su nizovi.

Da biste sortirali po nizu u primjeru niza, trebate samo promijeniti Vrijeme u uglatu zagradu do Zadatak:

myArray = [
{"Zadatak": "Pranje", "Vrijeme": 12.00},
{"Zadatak": "Nogomet", "Vrijeme": 24.00},
{"Zadatak": "Poredaj", "Vrijeme": 17.00},
{"Zadatak": "Šifra", "Vrijeme": 15.00}
]
def sortByTime (stavka):
vrati stavku ["Zadatak"]
myArray.sort (key = sortByTime)
ispis (myArray)

Zadaće možete sortirati i obrnutim redoslijedom postavljanjem obrnuti to true:

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

Također možete koristite lambda funkciju s vrsta() za čistiji kod:

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

Kako sortirati ugniježđeni popis Pythona

Ugniježđeni popis torki možete sortirati prema indeksu svakog ugniježđenog elementa na tom popisu.

Na primjer, donji kôd koristi treću stavku u svakom naboru za sortiranje popisa u rastućem redoslijedu:

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

U gornjem izlazu, treća stavka u svakoj korpici povećava se od nule do dvadeset zaredom.

Imajte na umu da ovo ne radi s Python skupom jer ga ne možete indeksirati. Povrh toga, svako gnijezdo na popisu mora pripadati istoj vrsti podataka.

Povezano: Što je skup u Pythonu i kako ga stvoriti

Međutim, da biste rasporedili izlaz u padajućem redoslijedu:

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

Pogledajmo kako ovo izgleda s a lambda također funkcioniraju:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sortirano (Alist, ključ = lambda a: a [2])
ispis (newList)
Izlaz: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kako sortirati popis pomoću metode Sorted ()

Možete koristiti i sortirano () metoda.

Iako djeluje slično kao vrsta() metodom stvara novi sortirani popis bez izmjene izvornika. Njegov raspored sintakse također se malo razlikuje.

Sintaksa za sortirano () metoda općenito izgleda ovako:

sortirano (popis, ključ = funkcija, obrnuto = Tačno / Netačno)

Dakle, za sortiranje popisa pomoću sortirano () metodu, trebate stvoriti novu varijablu za razvrstani popis:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
vrati a [2]
newList = sortirano (Alist, key = getIndex)
ispis (newList)
Izlaz: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

The sortirano () metoda također prihvaća a lambda funkcionira kao njegov ključ:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sortirano (Alist, ključ = lambda a: a [2])
ispis (newList)
Izlaz: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Gdje možete primijeniti sortiranje popisa?

Za učinkovito programiranje potrebno je čvrsto razumjeti Python metodu sortiranja. Omogućuje vam upravljanje načinom na koji dolazi popis ili niz i uvijek ga možete primijeniti u stvarnim projektima. Na primjer, sortiranje popisa Python može dobro doći prilikom preslagivanja podataka iz API-ja ili baze podataka, pa krajnjem korisniku ima više smisla.

E-mail
Kako dodati popis u Python

Rad s popisima u Pythonu? Evo što trebate znati o korištenju funkcije dodavanja Pythona pri radu s popisima.

Pročitajte Dalje

Povezane teme
  • Programiranje
  • Piton
  • Vodiči za kodiranje
O autoru
Idowu Omisola (Objavljeno 66 članaka)

Idowu je zaljubljen u sve pametne tehnologije i produktivnost. U slobodno vrijeme igra se s kodiranjem i prebacuje se na šahovsku ploču kad mu je dosadno, ali isto tako voli kad-tad odvojiti se od rutine. Njegova strast da ljudima pokaže put oko moderne tehnologije motivira ga da piše više.

Više od Idowu Omisole

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.