Sortarea unei liste în Python vă permite să aranjați articolele sale în ordine crescătoare sau descendentă.

În loc să scrie blocuri lungi de cod pentru a face acest lucru, Python are o metodă încorporată care vă permite să sortați elementele din orice listă sau matrice. Vom explica cum să faceți acest lucru în această postare.

Cum se sortează o listă în Python

Puteți sorta articolele dintr-o listă sau o matrice folosind Python fel() metodă.

fel() metoda din Python acceptă două argumente opționale și sintaxa arată astfel:

list.sort (cheie = funcție, inversă = Adevărat / Fals)

În mod implicit, fișierul fel() metoda aranjează elementele unei liste în ordine crescătoare:

myList = ["C", "D", "B", "A", "F"]
myList.sort ()
print (lista mea)
Ieșire: ['A', 'B', 'C', 'D', 'F']

Puteți utiliza verso argument pentru a vizualiza lista în ordine descrescătoare:

myList = ["C", "D", "B", "A", "F"]
myList.sort (invers = Adevărat)
print (lista mea)
Ieșire: [„F”, „D”, „C”, „B”, „A”]

De asemenea, puteți aranja articolele dintr-o listă după lungimea fiecărui șir.

instagram viewer

Pentru aceasta, creați o funcție și treceți-o în fel() folosind metoda opțională cheie argument:

myList = ["MUO", "Python", "JavaScript", "Sort", "Sortlists"]
def sortLength (item):
returnează len (articol)
myList.sort (invers = True, cheie = sortLength)
print (lista mea)
Ieșire: ['JavaScript', 'Liste de sortare', 'Python', 'Sortare', 'MUO']

Cum se sortează o listă de dicționare în Python

Puteți utiliza fel() metodă pentru a sorta și o listă de dicționare.

Să sortăm sarcinile din dicționarul de mai jos după timpul lor:

myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Fotbal", "Time": 24.00},
{"Task": "Sortare", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (item):
returnează articolul [„Ora”]
myArray.sort (cheie = sortByTime)
print (myArray)

Deoarece valorile timpului sunt întregi, blocul de cod de mai sus rearanjează matricea pe baza timpului sarcinii.

Legate de: Cum funcționează matricele și listele în Python

Pe lângă sortarea matricei de mai sus în funcție de timp, o puteți aranja și alfabetic folosind sarcinile, care sunt șiruri.

Pentru a sorta după șir în exemplul de matrice, trebuie doar să schimbați Timp în paranteză pătrată la Sarcină:

myArray = [
{"Task": "Wash", "Time": 12.00},
{"Task": "Fotbal", "Time": 24.00},
{"Task": "Sortare", "Time": 17.00},
{"Task": "Code", "Time": 15.00}
]
def sortByTime (item):
returnează articolul [„Sarcină”]
myArray.sort (cheie = sortByTime)
print (myArray)

De asemenea, puteți sorta sarcinile în ordine inversă prin setare verso la adevărat:

myArray.sort (cheie = sortByTime, invers = True)

Poti de asemenea utilizați o funcție lambda cu fel() pentru cod mai curat:

myArray.sort (cheie = lambda getTime: getTime ["Time"])
print (myArray)

Cum se sortează o listă de Python imbricată

Puteți sorta o listă imbricată de tupluri după indexul fiecărui element imbricat din lista respectivă.

De exemplu, codul de mai jos folosește al treilea element din fiecare tupl pentru a sorta lista în ordine crescătoare:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def sortByThirdIndex (a):
returnează un [2]
Alist.sort (cheie = sortByThirdIndex)
print (Alist)
Ieșire: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

În rezultatul de mai sus, al treilea element din fiecare tuplu crește de la zero la douăzeci consecutiv.

Rețineți că acest lucru nu funcționează cu un set Python, deoarece nu îl puteți indexa. În plus, fiecare cuib din listă trebuie să aparțină aceluiași tip de date.

Legate de: Ce este un set în Python și cum să creați unul

Cu toate acestea, pentru a aranja ieșirea în ordine descrescătoare:

Alist.sort (cheie = getIndex, invers = Adevărat)
print (Alist)
Ieșire: [(3, 19, 20), (1, 8, 15), (10, 19, 4), (7, 9, 3), (2, 6, 0)]

Să vedem cum arată acest lucru cu un lambda funcționează și:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sortat (Listă, cheie = lambda a: a [2])
print (listă nouă)
Ieșire: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Cum se sortează o listă folosind metoda Sorted ()

Alternativ, puteți utiliza fișierul sortat () metodă.

Deși funcționează similar cu fel() metoda, creează o nouă listă sortată fără a modifica originalul. Aspectul său de sintaxă este, de asemenea, ușor diferit.

Sintaxa pentru sortat () metoda arată în general astfel:

sortate (listă, cheie = funcție, inversă = Adevărat / Fals)

Deci, pentru a sorta o listă folosind sortat (), trebuie să creați o nouă variabilă pentru lista sortată:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
def getIndex (a):
returnează un [2]
newList = sortat (Listă, cheie = getIndex)
print (listă nouă)
Ieșire: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

sortat () metoda acceptă și a lambda funcționează ca cheie:

Alist = [(3, 19, 20), (2, 6, 0), (1, 8, 15), (7, 9, 3), (10, 19, 4)]
newList = sortat (Listă, cheie = lambda a: a [2])
print (listă nouă)
Ieșire: [(2, 6, 0), (7, 9, 3), (10, 19, 4), (1, 8, 15), (3, 19, 20)]

Unde puteți aplica sortarea listelor?

Pentru o programare eficientă este necesară o înțelegere solidă a metodei de sortare Python. Vă permite să controlați modul în care apare o listă sau o matrice și o puteți aplica oricând în proiecte din viața reală. De exemplu, sortarea unei liste Python poate fi utilă atunci când rearanjați datele dintr-un API sau dintr-o bază de date, deci are mai mult sens pentru utilizatorul final.

E-mail
Cum se adaugă o listă în Python

Lucrați cu liste în Python? Iată ce trebuie să știți despre utilizarea funcției de adăugare Python atunci când lucrați cu liste.

Citiți în continuare

Subiecte asemănătoare
  • Programare
  • Piton
  • Tutoriale de codare
Despre autor
Idowu Omisola (66 articole publicate)

Idowu este pasionat de orice tehnologie inteligentă și productivitate. În timpul liber, se joacă cu codificarea și trece la tabla de șah când se plictisește, dar îi place, de asemenea, să se rupă de rutină din când în când. Pasiunea sa pentru a arăta oamenilor calea în jurul tehnologiei moderne îl motivează să scrie mai multe.

Mai multe de la Idowu Omisola

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Încă un pas…!

Vă rugăm să confirmați adresa de e-mail în e-mailul pe care tocmai vi l-am trimis.

.