Kaip surūšiuoti beveik bet kokio tipo sąrašą „Python“

Kaip surūšiuoti beveik bet kokio tipo sąrašą „Python“

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
Apie autorių Idisou Omisola(Paskelbti 94 straipsniai)

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 Omisola

Prenumeruokite 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