Come ordinare una lista con la funzione sorted in Python

L'ordinamento è una delle operazioni più comuni e utili nella manipolazione di dati. Che si stia lavorando con database, elaborando dati per analisi statistiche, o semplicemente ordinando elenchi per motivi di leggibilità, la capacità di ordinare dati in modo efficiente è fondamentale. 

Python, con la sua funzione built-in sorted(), offre un modo potente e flessibile per ordinare qualsiasi iterabile, restituendo una nuova lista ordinata degli elementi. Questa guida esplorerà come utilizzare sorted in Python, con particolare attenzione alle sue opzioni avanzate e agli esempi pratici.

La funzione sorted in Python

La funzione sorted prende un iterabile come input e restituisce una nuova lista con tutti gli elementi dell'iterabile nell'ordine specificato. A differenza del metodo sort che modifica la lista in loco, sorted lavora su qualsiasi iterabile e restituisce sempre una nuova lista, lasciando l'iterabile originale inalterato.

La sintassi base di sorted() è:

sorted(iterabile, key=None, reverse=False)

dove:

  • iterabile: l'input su cui eseguire l'ordinamento.
  • key: un parametro opzionale che specifica una funzione di un parametro da utilizzare per estrarre una chiave di confronto da ciascun elemento dell'iterabile.
  • reverse: un parametro booleano opzionale che, se impostato a True, fa sì che l'iterabile sia ordinato in ordine decrescente.

Esempi di come ordinare una lista con la funzione sorted

Questo esempio restituisce [1, 1, 2, 3, 4, 5, 9], una nuova lista con i numeri in ordine crescente.

numeri = [3, 1, 4, 1, 5, 9, 2]
numeri_ordinati = sorted(numeri)

Nel seguente esempio, invece, le parole sono ordinate alfabeticamente: ['arancia', 'banana', 'ciliegia', 'mela'].

parole = ["banana", "mela", "ciliegia", "arancia"]
parole_ordinate = sorted(parole)

Di seguito viene mostrato il codice per ordinare in ordine decrescente:

numeri_ordinati_inverso = sorted(numeri, reverse=True)

Possiamo anche indicare il valore di key, in particolare possiamo ordinare la lista di frutti ignorando maiuscole e minuscole:

frutti = ["banana", "Mela", "ciliegia", "Arancia"]
frutti_ordinati = sorted(frutti, key=str.lower)

Vantaggi dell'uso di sorted

Il metodo sorted() può essere utilizzato su qualsiasi iterabile, non solo su liste. Ciò lo rende estremamente versatile per ordinare vari tipi di dati.

Poiché restituisce una nuova lista, l'iterabile originale rimane inalterato, preservando i dati originali.

Grazie ai parametri key e reverse, sorted() offre flessibilità nell'ordinamento, permettendo ordinamenti complessi e personalizzati.

Conclusioni

La funzione sorted in Python è uno strumento potente e flessibile per l'ordinamento di dati. Che si tratti di semplici liste di numeri o strutture dati più complesse, sorted offre la capacità di ordinare in modo efficiente e personalizzato. Attraverso gli esempi pratici presentati, abbiamo esplorato varie modalità di utilizzo di sorted, dimostrando come può essere adattato a diverse esigenze di ordinamento.

Indice pagine Python: