Loendi sortimine Pythonis võimaldab teil selle üksusi järjestada kasvavas või kahanevas järjekorras.

Pikkade koodiplokkide kirjutamise asemel on Pythonis sisseehitatud meetod, mis võimaldab teil ükskõik millises loendis või massiivis üksusi sortida. Kuidas seda teha, selgitame selles postituses.

Kuidas Pythonis loendit sortida

Püütoni abil saate loendis või massiivis olevaid üksusi sorteerida sort () meetod.

The sort () meetod Pythonis aktsepteerib kahte valikulist argumenti ja süntaks näeb välja selline:

list.sort (võti = funktsioon, vastupidine = tõene / vale)

Vaikimisi on sort () meetod korraldab loendi üksused kasvavas järjekorras:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
print (myList)
Väljund: ['A', 'B', 'C', 'D', 'F']

Võite kasutada tagurpidi argument loendi vaatamiseks kahanevas järjekorras:

myList = ["C", "D", "B", "A", "F"]
myList.sort (vastupidine = True)
print (myList)
Väljund: ['F', 'D', 'C', 'B', 'A']

Loendis olevaid üksusi saate korraldada ka iga stringi pikkuse järgi.

instagram viewer

Selleks looge funktsioon ja edastage see sort () meetod, kasutades valikulist võti argument:

myList = ["MUO", "Python", "JavaScript", "Sorteeri", "Sorteerimisloendid"]
def sortLength (element):
tagastage len (kirje)
myList.sort (vastupidine = True, võti = sortLength)
print (myList)
Väljund: ['JavaScript', 'Sortlists', 'Python', 'Sort', 'MUO']

Kuidas sortida Pythonis olevate sõnastike loendit

Võite kasutada sort () meetod sõnaraamatute loendi sortimiseks.

Sorteerime allolevas sõnastikus olevad ülesanded nende aja järgi:

myArray = [
{"Ülesanne": "Pese", "Aeg": 12.00},
{"Ülesanne": "Jalgpall", "Aeg": 24.00},
{"Ülesanne": "Sorteeri", "Aeg": 17.00},
{"Ülesanne": "Kood", "Aeg": 15.00}
]
def sortByTime (element):
tagasta üksus ["aeg"]
myArray.sort (võti = sortByTime)
print (myArray)

Kuna aja väärtused on täisarvud, korraldab ülaltoodud koodiplokk massiivi ülesande aja põhjal ümber.

Seotud: Kuidas massiivid ja loendid Pythonis töötavad

Lisaks ülaltoodud massiivi aja järgi sorteerimisele saate selle järjestada ka tähestiku järgi, kasutades stringe.

Näidismassiivis stringide järgi sortimiseks peate ainult muutma Aeg nurksulgus kuni Ülesanne:

myArray = [
{"Ülesanne": "Pese", "Aeg": 12.00},
{"Ülesanne": "Jalgpall", "Aeg": 24.00},
{"Ülesanne": "Sorteeri", "Aeg": 17.00},
{"Ülesanne": "Kood", "Aeg": 15.00}
]
def sortByTime (element):
tagastage üksus ["ülesanne"]
myArray.sort (võti = sortByTime)
print (myArray)

Samuti saate ülesandeid sättida vastupidises järjekorras tagurpidi tõele:

myArray.sort (võti = sortByTime, reverse = True)

Sa saad ka kasutage lambda funktsiooni koos sort () puhtama koodi jaoks:

myArray.sort (võti = lambda getTime: getTime ["aeg"])
print (myArray)

Pesastatud Pythoni loendi sortimine

Saate sorteerida pesade loendite loendi iga pesastatud elemendi indeksi järgi.

Näiteks kasutab allolev kood loendi kasvavas järjekorras sortimiseks iga ruudu kolmandat üksust:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
tagastama [2]
Alist.sort (võti = sortByThirdIndex)
print (Alist)
Väljund: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Ülaltoodud väljundis suureneb iga üksuse kolmas üksus järjest nullilt kahekümnele.

Pange tähele, et see ei tööta Pythoni komplektiga, kuna te ei saa seda indekseerida. Lisaks peab iga loendis olev pesa kuuluma samasse andmetüüpi.

Seotud: Mis on Pythoni komplekt ja kuidas seda luua

Väljundi järjestamiseks kahanevas järjekorras:

Alist.sort (võti = getIndex, tagurpidi = tõene)
print (Alist)
Väljund: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Vaatame, kuidas see a-ga välja näeb lambda funktsioon ka:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorteeritud (Alist, key = lambda a: a [2])
print (newList)
Väljund: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Loendi sortimine meetodi Sorted () abil

Teise võimalusena võite kasutada sorteeritud () meetod.

Kuigi see töötab sarnaselt sort () meetodi abil loob see uue sorditud loendi originaali muutmata. Ka selle süntaksipaigutus on veidi erinev.

Süntaksi sorteeritud () meetod näeb välja selline:

sorteeritud (loend, võti = funktsioon, tagurpidi = tõene / vale)

Nii et loendi sortimiseks, kasutades sorteeritud () meetodi jaoks peate sorditud loendi jaoks looma uue muutuja:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
tagastama [2]
newList = sorteeritud (Alist, key = getIndex)
print (newList)
Väljund: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

The sorteeritud () meetod aktsepteerib ka a lambda toimib selle võtmena:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sorteeritud (Alist, key = lambda a: a [2])
print (newList)
Väljund: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Kus saab loendite sortimist rakendada?

Tõhusaks programmeerimiseks on vaja Pythoni sortimismeetodi põhjalikku mõistmist. See võimaldab teil kontrollida, kuidas loend või massiiv läbi tuleb, ja saate seda alati rakendada reaalsetes projektides. Näiteks võib Pythoni loendi sortimine olla kasulik, kui andmeid API-st või andmebaasist ümber korraldada, nii et see on lõppkasutajale mõistlikum.

E-post
Kuidas Pythonis loendit lisada

Kas töötate loenditega Pythonis? Loenditega töötamisel peate teadma funktsiooni Python append kasutamise kohta.

Loe edasi

Seotud teemad
  • Programmeerimine
  • Python
  • Kodeerimise õpetused
Autori kohta
Idowu Omisola (Avaldatud 66 artiklit)

Idowu on kirglik kõigest nutikast tehnoloogiast ja tootlikkusest. Vabal ajal mängib ta kodeerimisega ringi ja lülitub igavuse korral malelauale, kuid armastab ka rutiinist lahti murda. Tema kirg näidata inimestele moodsate tehnikate kohta motiveerib teda rohkem kirjutama.

Veel Idowu Omisolalt

Telli meie uudiskiri

Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!

Veel üks samm !!!

Palun kinnitage oma e-posti aadress meilis, mille me just saatsime.

.