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 devineNone. - Apelezi
sort()pe un tuplu sau pe un dicționar: nu există. Foloseștesorted().
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.