Kuidas sorteerida Pythonis peaaegu igat tüüpi loendeid

Kuidas sorteerida Pythonis peaaegu igat tüüpi loendeid

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





Selle asemel, et kirjutada selleks pikki koodiplokke, on Pythonil sisseehitatud meetod, mis võimaldab teil sortida mis tahes loendi või massiivi üksusi. Kuidas seda teha, selgitame selles postituses.





Kuidas Pythonis loendit sortida

Pythoni abil saate sortida loendis või massiivis olevaid üksusi sorteerima () meetod.





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

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

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



myList = ['C', 'D', 'B', 'A', 'F']
myList.sort()
print(myList)
Output: ['A', 'B', 'C', 'D', 'F']

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

myList = ['C', 'D', 'B', 'A', 'F']
myList.sort(reverse = True)
print(myList)
Output: ['F', 'D', 'C', 'B', 'A']

Samuti saate loendi üksusi järjestada iga stringi pikkuse järgi.





Selleks looge funktsioon ja edastage see kausta sorteerima () meetodit kasutades valikulist võti argument:

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']

Kuidas sortida Pythonis sõnastike loendit

Võite kasutada sorteerima () meetod sõnastike loendi sortimiseks.





Sorteerime alloleva sõnastiku ülesanded nende aja järgi:

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)

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

Seotud: Kuidas massiivid ja loendid Pythonis töötavad

Lisaks ülaltoodud massiivi ajaliselt sorteerimisele saate selle ka tähestikulises järjekorras korraldada, kasutades ülesandeid, mis on stringid.

Näidismassiivi stringide järgi sortimiseks peate ainult muutma Aeg nurksulgudes kuni Ülesanne :

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)

Ülesandeid saate sortida ka vastupidises järjekorras tagurpidi tõele:

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

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

myArray.sort(key = lambda getTime: getTime['Time'])
print(myArray)

Kuidas pesastatud Pythoni loendit sortida

Pesastatud tiitliloendi saate sortida selle loendi iga pesastatud elemendi indeksi järgi.

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

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)]

Ülaltoodud väljundis tõuseb iga tüübi kolmas element järjest nullist kahekümneni.

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

Seotud: Mis on Pythonis komplekt ja kuidas seda luua

mis on programmeerimise funktsioon

Väljundi korraldamiseks aga kahanevas järjekorras:

Alist.sort(key = getIndex, reverse = True)
print(Alist)
Output: [(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 toimib ka:

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)]

Loendi sorteerimine Sorteeritud () meetodi abil

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

Kuigi see töötab sarnaselt sorteerima () meetod, loob see uue sorteeritud loendi ilma originaali muutmata. Ka selle süntaksi paigutus on pisut erinev.

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

sorted(list, key = function, reverse = True/False)

Nii et loendi sortimiseks kasutage sorteeritud () meetod, peate sorteeritud loendi jaoks looma uue muutuja:

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 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 = 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)]

Kust saab nimekirjade sorteerimist rakendada?

Tõhusaks programmeerimiseks on vaja Python sortimismeetodist hästi aru saada. See võimaldab teil juhtida loendi või massiivi läbiviimist ja saate seda alati rakendada reaalsetes projektides. Näiteks võib Pythoni loendi sortimine olla kasulik API või andmebaasi andmete ümberkorraldamisel, nii et see on lõppkasutajale mõistlikum.

Jaga Jaga Piiksuma E -post Loendi lisamine Pythonis

Kas töötate loenditega Pythonis? Siin on, mida peate teadma Pythoni lisamisfunktsiooni kasutamise kohta loenditega töötamisel.

Loe edasi
Seotud teemad
  • Programmeerimine
  • Python
  • Kodeerimise õpetused
Autori kohta Idisou Omisola(Avaldatud 94 artiklit)

Idowu on kirglik kõige nutika tehnoloogia ja tootlikkuse vastu. Vabal ajal mängib ta kodeerimisega ja lülitab malelauale, kui tal on igav, kuid talle meeldib ka aeg -ajalt rutiinist lahti saada. Tema kirg näidata inimestele teed kaasaegses tehnoloogias motiveerib teda rohkem kirjutama.

Veel Idowu Omisolast

Telli meie uudiskiri

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

Tellimiseks klõpsake siin