Rūšiuodami sąrašą „Python“ galite sutvarkyti jo elementus didėjančia arba mažėjančia tvarka.
Užuot rašęs ilgus kodo blokus, „Python“ turi įmontuotą metodą, leidžiantį rūšiuoti elementus bet kuriame sąraše ar masyve. Šiame straipsnyje mes paaiškinsime, kaip tai padaryti.
Kaip rūšiuoti sąrašą „Python“
Naudodami „Python“ galite rūšiuoti sąrašo ar masyvo elementus rūšiuoti () metodas.
The 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 sutvarko sąrašo elementus didėjančia tvarka:
myList = ['C', 'D', 'B', 'A', 'F']
myList.sort()
print(myList)
Output: ['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(reverse = True)
print(myList)
Output: ['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ą į rūšiuoti () metodas naudojant pasirenkamąjį Raktas argumentas:
myList = ['MUO', 'Python', 'JavaScript', 'Sort', 'Sortlists']
def sortLength(item):
return len(item)
myList.sort(reverse = True, key = sortLength)
print(myList)
Output: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']
Kaip surūšiuoti „Python“ žodynų sąrašą
Galite naudoti rūšiuoti () metodas taip pat surūšiuoti žodynų sąrašą.
Rūšiuokime užduotis žemiau esančiame žodyne pagal jų laiką:
myArray = [
{'Task': 'Wash', 'Time': 12.00},
{'Task':'Football', 'Time': 24.00},
{'Task':'Sort', 'Time': 17.00},
{'Task':'Code', 'Time': 15.00}
]
def sortByTime(item):
return item['Time']
myArray.sort(key = sortByTime)
print(myArray)
Kadangi laiko reikšmės yra sveikieji skaičiai, aukščiau pateiktas kodo blokas pertvarko masyvą pagal užduoties laiką.
Susijęs: Kaip masyvai ir sąrašai veikia „Python“
Be to, kad pirmiau pateiktą masyvą surūšiuotumėte pagal laiką, taip pat galite sutvarkyti jį abėcėlės tvarka naudodami užduotis, kurios yra eilutės.
Norėdami rūšiuoti pagal eilutę masyvo pavyzdyje, turite tik pakeisti Laikas laužtiniame skliauste iki Užduotis :
myArray = [
{'Task': 'Wash', 'Time': 12.00},
{'Task':'Football', 'Time': 24.00},
{'Task':'Sort', 'Time': 17.00},
{'Task':'Code', 'Time': 15.00}
]
def sortByTime(item):
return item['Task']
myArray.sort(key = sortByTime)
print(myArray)
Taip pat galite rūšiuoti užduotis atvirkštine tvarka nustatydami atvirkščiai tiesa:
myArray.sort(key = sortByTime, reverse = True)
Tu taip pat gali naudokite lambda funkciją su rūšiuoti () švaresniam kodui:
myArray.sort(key = lambda getTime: getTime['Time'])
print(myArray)
Kaip rūšiuoti įdėtą „Python“ sąrašą
Galite surūšiuoti įterptų rinkinių sąrašą pagal kiekvieno to sąrašo įdėto elemento indeksą.
Pavyzdžiui, toliau pateiktas kodas naudoja trečiąjį elementą kiekvienoje kortelėje, kad sąrašas būtų rūšiuojamas didėjančia tvarka:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex(a):
return a[2]
Alist.sort(key = sortByThirdIndex)
print(Alist)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Aukščiau pateiktame produkte trečiasis elementas kiekvienoje kortelėje padidėja nuo nulio iki dvidešimt iš eilės.
Atminkite, kad tai neveikia su „Python“ rinkiniu, nes negalite jo indeksuoti. Be to, kiekvienas sąrašo lizdas turi priklausyti tam pačiam duomenų tipui.
Susijęs: Kas yra „Python“ rinkinys ir kaip jį sukurti
kaip žiūrėti filmą su kuo nors internetu
Tačiau, norėdami sutvarkyti išvestį mažėjančia tvarka:
Alist.sort(key = getIndex, reverse = True)
print(Alist)
Output: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]
Pažiūrėkime, kaip tai atrodo naudojant a lambda funkcija taip pat:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Kaip surūšiuoti sąrašą naudojant rūšiavimo () metodą
Arba galite naudoti surūšiuotas () metodas.
Nors jis veikia panašiai kaip rūšiuoti () metodas, jis sukuria naują surūšiuotą sąrašą nepakeisdamas originalo. Jo sintaksės išdėstymas taip pat šiek tiek skiriasi.
Sintaksė surūšiuotas () metodas paprastai atrodo taip:
sorted(list, key = function, reverse = True/False)
Taigi, norėdami rūšiuoti sąrašą naudodami surūšiuotas () metodą, turite sukurti naują rūšiuoto sąrašo kintamąjį:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex(a):
return a[2]
newList = sorted(Alist, key = getIndex)
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
The surūšiuotas () metodas taip pat priima a lambda veikia kaip jo raktas:
Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorted(Alist, key = lambda a: a[2])
print(newList)
Output: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]
Kur galite taikyti sąrašų rūšiavimą?
Norint efektyviai programuoti, reikia gerai išmanyti „Python“ rūšiavimo metodą. Tai leidžia jums kontroliuoti, kaip pateikiamas sąrašas ar masyvas, ir visada galite jį pritaikyti realaus gyvenimo 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.
Dalintis Dalintis „Tweet“ Paštu 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.
Skaityti toliau Susijusios temos- Programavimas
- Python
- Kodavimo pamokos
Idowu aistringai domisi visomis išmaniosiomis technologijomis ir produktyvumu. Laisvalaikiu jis žaidžia koduodamasis ir nuobodžiai persijungia į šachmatų lentą, tačiau taip pat mėgsta retkarčiais atitrūkti nuo rutinos. Jo aistra parodyti žmonėms kelią aplink šiuolaikines technologijas skatina jį daugiau rašyti.
Daugiau iš Idowu OmisolaPrenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia