Rūšiuojant sąrašą „Python“, galite tvarkyti jo elementus didėjimo arba mažėjimo tvarka.

Užuot parašęs ilgus kodų blokus, „Python“ turi įmontuotą metodą, kuris leidžia rūšiuoti elementus bet kuriame sąraše ar masyve. Kaip tai padaryti, paaiškinsime šiame įraše.

Kaip rūšiuoti sąrašą „Python“

Galite rūšiuoti elementus sąraše arba masyve naudodami „Python“ rūšiuoti () metodas.

rūšiuoti () metodas „Python“ priima du pasirenkamus argumentus, o sintaksė atrodo taip:

list.sort (key = function, reverse = True / False)

Pagal numatytuosius nustatymus rūšiuoti () metodas tvarko sąrašo elementus didėjimo tvarka:

myList = ["C", "D", "B", "A", "F"]
„myList.sort“ ()
spausdinti („myList“)
Išvestis: [„A“, „B“, „C“, „D“, „F“]

Galite naudoti atvirkščiai argumentas peržiūrėti sąrašą mažėjančia tvarka:

myList = ["C", "D", "B", "A", "F"]
„myList.sort“ (atvirkščiai = Tiesa)
spausdinti („myList“)
Išvestis: ['F', 'D', 'C', 'B', 'A']

Taip pat galite išdėstyti sąrašo elementus pagal kiekvienos eilutės ilgį.

Norėdami tai padaryti, sukurkite funkciją ir perkelkite ją į

instagram viewer
rūšiuoti () metodas naudojant neprivalomą Raktas argumentas:

myList = ["MUO", "Python", "JavaScript", "Rūšiuoti", "Rūšiuoti sąrašai"]
def sortLength (elementas):
grąžinti leną (prekė)
myList.sort (atvirkštinis = True, raktas = sortLength)
spausdinti („myList“)
Išvestis: ['JavaScript', 'Sortlists', 'Python', 'Rūšiuoti', 'MUO']

Kaip surūšiuoti „Python“ žodynų sąrašą

Galite naudoti rūšiuoti () metodas taip pat rūšiuoti žodynų sąrašą.

Rūšiuokime žemiau esančiame žodyne pateiktas užduotis pagal jų laiką:

myArray = [
{"Užduotis": "Skalbimas", "Laikas": 12.00},
{"Užduotis": "Futbolas", "Laikas": 24.00},
{"Užduotis": "Rūšiuoti", "Laikas": 17.00},
{"Užduotis": "Kodas", "Laikas": 15.00}
]
def sortByTime (elementas):
grąžinti prekę [„Laikas“]
myArray.sort (raktas = sortByTime)
spausdinti („myArray“)

Kadangi laiko reikšmės yra sveiki skaičiai, aukščiau pateiktas kodo blokas pertvarko masyvą pagal užduoties laiką.

Susijęs: Kaip masyvai ir sąrašai veikia „Python“

Be aukščiau pateikto masyvo rūšiavimo pagal laiką, taip pat galite jį išdėstyti abėcėlės tvarka, naudodami užduotis, kurios yra eilutės.

Norėdami rūšiuoti pagal eilutę masyvo pavyzdyje, jums tereikia pakeisti Laikas laužtiniame skliauste į Užduotis:

myArray = [
{"Užduotis": "Skalbimas", "Laikas": 12.00},
{"Užduotis": "Futbolas", "Laikas": 24.00},
{"Užduotis": "Rūšiuoti", "Laikas": 17.00},
{"Užduotis": "Kodas", "Laikas": 15.00}
]
def sortByTime (elementas):
grąžinti prekę [„Užduotis“]
myArray.sort (raktas = sortByTime)
spausdinti („myArray“)

Taip pat galite rūšiuoti užduotis atvirkštine tvarka nustatydami atvirkščiai tiesa:

myArray.sort (raktas = sortByTime, atvirkštinis = True)

Tu taip pat gali naudokite lambda funkciją su rūšiuoti () švaresniam kodui:

myArray.sort (raktas = lambda getTime: getTime ["Laikas"])
spausdinti („myArray“)

Kaip rūšiuoti įdėtųjų Python sąrašą

Galite rūšiuoti įdėtą rinkinių sąrašą pagal kiekvieno to sąrašo įdėto elemento indeksą.

Pvz., Žemiau pateiktas kodas naudoja trečią elementą kiekviename rinkinyje, kad surikiuotų sąrašą didėjimo tvarka:

Alistas = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
grąžinti [2]
Alist.sort (raktas = sortByThirdIndex)
spausdinti (Alist)
Rezultatas: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Aukščiau pateiktame išvestyje trečiasis elementas kiekviename pakete iš eilės padidėja nuo nulio iki dvidešimties.

Atminkite, kad tai neveikia su „Python“ rinkiniu, nes negalite jo indeksuoti. Be to, kiekvienas lizdas sąraše turi priklausyti tam pačiam duomenų tipui.

Susijęs: Kas yra „Python“ rinkinys ir kaip jį sukurti

Tačiau, jei norite išdėstyti išvestį mažėjimo tvarka:

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

Pažiūrėkime, kaip tai atrodo su lambda funkcija taip pat:

Alistas = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = rūšiuojamas (Alist, key = lambda a: a [2])
spausdinti (newList)
Rezultatas: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kaip rūšiuoti sąrašą naudojant rūšiavimo () metodą

Arba galite naudoti rūšiuojamas () metodas.

Nors jis veikia panašiai kaip rūšiuoti () metodas, jis sukuria naują surūšiuotą sąrašą nekeisdamas originalo. Jos sintaksės išdėstymas taip pat šiek tiek skiriasi.

Sintaksė rūšiuojamas () metodas paprastai atrodo taip:

rūšiuojamas (sąrašas, raktas = funkcija, atvirkštinė = teisinga / klaidinga)

Taigi, jei norite rūšiuoti sąrašą naudodami rūšiuojamas () metodą, turite sukurti naują kintamąjį rūšiuojamam sąrašui:

Alistas = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
grąžinti [2]
newList = rūšiuojamas (Alist, key = getIndex)
spausdinti (newList)
Rezultatas: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

rūšiuojamas () metodas taip pat priima a lambda veikia kaip raktas:

Alistas = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = rūšiuojamas (Alist, key = lambda a: a [2])
spausdinti (newList)
Rezultatas: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kur galite pritaikyti sąrašų rūšiavimą?

Norint efektyviai programuoti, reikia tvirtai suvokti „Python“ rūšiavimo metodą. Tai leidžia jums kontroliuoti, kaip pateikiamas sąrašas ar masyvas, ir jūs visada galite jį pritaikyti realiuose projektuose. Pavyzdžiui, „Python“ sąrašo rūšiavimas gali būti naudingas pertvarkant duomenis iš API ar duomenų bazės, todėl galutiniam vartotojui tai yra prasmingiau.

El
Kaip pridėti sąrašą „Python“

Darbas su sąrašais „Python“? Štai ką reikia žinoti apie „Python append“ funkcijos naudojimą dirbant su sąrašais.

Skaitykite toliau

Susijusios temos
  • Programavimas
  • „Python“
  • Kodavimo pamokos
Apie autorių
Idowu Omisola (Paskelbti 66 straipsniai)

Idowu yra aistringas dėl bet kokių protingų technologijų ir produktyvumo. Laisvalaikiu jis žaidžia su kodavimu ir, kai nuobodžiauja, pereina prie šachmatų lentos, tačiau taip pat mėgsta kartkartėmis atitrūkti nuo rutinos. Aistra parodyti žmonėms kelią į šiuolaikines technologijas skatina daugiau rašyti.

Daugiau iš Idowu Omisola

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Dar vienas žingsnis…!

Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.

.