list.sort() în Python

Metode pentru liste Python 3.0+

Sortează o listă pe loc, cu criteriu și ordine opționale.

Sintaxă
lista.sort(*, key=None, reverse=False)

Ce face list.sort()

sort() ordonează elementele listei crescător, modificând lista. Parametrii sunt aceiași ca la sorted(): key (funcția care dă criteriul) și reverse. Sortarea este stabilă: elementele egale își păstrează ordinea.

Diferența față de sorted(): sort() există doar pentru liste, nu creează o listă nouă și returnează None. Pentru sortare după mai multe criterii, cheia poate returna un tuplu.

Parametri

Parametru Descriere
key Opțional. Funcție aplicată fiecărui element pentru comparare.
reverse Opțional. True pentru ordine descrescătoare.

Ce returnează

None.

Exemple

Exemplul 1: Sortare simplă și inversă

preturi = [32.9, 4.5, 7, 12]
preturi.sort()
print(preturi)
preturi.sort(reverse=True)
print(preturi)

Rezultat

[4.5, 7, 12, 32.9]
[32.9, 12, 7, 4.5]

Exemplul 2: După mai multe criterii

Sortăm descrescător după medie (de aceea minus), iar la egalitate alfabetic după nume.

elevi = [("Mihai", 9.5), ("Ana", 9.8), ("Dan", 9.5), ("Ioana", 8.7)]
elevi.sort(key=lambda e: (-e[1], e[0]))
for nume, medie in elevi:
    print(nume, medie)

Rezultat

Ana 9.8
Dan 9.5
Mihai 9.5
Ioana 8.7

Greșeli frecvente

  • Scrii lista = lista.sort() și lista devine None.
  • Apelezi sort() pe un tuplu sau pe un dicționar: nu există. Folosește sorted().

Comenzi înrudite

  • sorted(): Returnează o listă nouă, sortată, cu elementele unei colecții.
  • list.reverse(): Inversează ordinea elementelor unei liste, pe loc.
  • lambda: Creează o funcție mică, fără nume, scrisă pe un singur rând.
  • functools.cmp_to_key(): Transformă o funcție de comparare veche (care returnează negativ, zero, pozitiv) într-o cheie de sortare.