In Python, una lista contenente dizionari può essere ordinata utilizzando la funzione sorted()
o il metodo sort()
. Questi metodi permettono di specificare una chiave personalizzata per determinare l'ordinamento degli elementi.
Utilizzo di sorted()
La funzione sorted()
restituisce una nuova lista ordinata senza modificare l'originale. È utile quando si desidera mantenere intatta la lista di partenza.
lista = [
{"nome": "Mario", "età": 25},
{"nome": "Anna", "età": 22},
{"nome": "Luca", "età": 30}
]
lista_ordinata = sorted(lista, key=lambda x: x["età"])
print(lista_ordinata)
In questo esempio, la lista viene ordinata in base al valore della chiave età
.
Utilizzo di sort()
Il metodo sort()
ordina la lista in-place, modificando l'oggetto originale.
lista.sort(key=lambda x: x["età"])
print(lista)
Il risultato sarà lo stesso di sorted()
, ma la lista originale verrà modificata.
Ordinamento decrescente
Per ordinare in ordine decrescente, basta aggiungere il parametro reverse=True
:
lista_ordinata_dec = sorted(lista, key=lambda x: x["età"], reverse=True)
print(lista_ordinata_dec)
Ordinamento per più chiavi
Se si vuole ordinare per più criteri, è possibile usare una tupla come chiave:
lista_ordinata = sorted(lista, key=lambda x: (x["età"], x["nome"]))
print(lista_ordinata)
In questo caso, i dati vengono ordinati prima per età e poi, in caso di parità, per nome.
Conclusione
Python fornisce strumenti semplici ed efficaci per ordinare liste di dizionari. A seconda delle necessità, si può scegliere tra sorted()
, per mantenere l'originale inalterato, o sort()
, per ordinare direttamente la lista.