lettura facile

La funzione sorted() in Python

La funzione sorted() è una funzione incorporata in Python che consente di ordinare gli elementi di un oggetto iterabile come una lista o un set) e restituisce una lista ordinata degli elementi. La sintassi di base del metodo sorted()`è la seguente:

sorted(iterable, *, key=None, reverse=False)

La funzione ha tre argomenti:

  • iterable: l'oggetto iterabile che si desidera ordinare (es. lista, tupla, set).
  • key (opzionale): una funzione che serve come chiave per l'ordinamento. La funzione verrà chiamata su ogni elemento dell'iterabile.
  • reverse (opzionale): un valore booleano che, se impostato su True, ordinerà l'iterabile in ordine decrescente.

La funzione restituisce una nuova lista con gli elementi ordinati.

La funzione sorted() restituisce una nuova lista e non modifica l'iterabile originale. Se vuoi ordinare una lista sul posto, si può utilizzare il metodo sort() di una lista invece di sorted(). Tuttavia, sort() funziona solo con le liste, mentre sorted() può essere utilizzato con qualsiasi iterabile.

Ecco qualche esempio pratico.

Puoi usare la funzione sorted() per ordinare gli elementi di una lista.

Crea una lista con alcuni valori numerici.

numeri = [34, 1, 78, 5]

Poi ordina il contenuto della lista con la funzione sorted()

sorted(numeri)

Il risultato è una nuova lista con gli elementi ordinati in modo crescente.

[1, 5, 34, 78]

Per ottenere l'ordinamento inverso, utilizza l'argomento reverse.

sorted(numeri, reverse=True)

In questo caso il risultato è una lista con gli elementi ordinati in modo decrescente.

[78, 34, 5, 1]

Se gli elementi della lista sono stringhe, la funzione sorted() elenca le parole in ordine alfabetico.

Ad esempio, crea questa lista.

parole = ["mela", "banana", "ciliegia"]

Poi ordina il contenuto della lista tramite la funzione sorted()

sorted(parole)

La funzione restituisce le stringhe seguendo l'ordine alfabetico.

['banana', 'ciliegia', 'mela']

Il parametro key ti permette di eseguire l'ordinamento in base a una funzione di ordinamento.

Ad esempio, crea una lista di tuple che indicano delle coordinate del piano (x,y)

punti = [(1, 1), (3, 4), (0, 2)]

Poi ordina i punti in base alla loro distanza dall'origine:

sorted(punti, key=lambda p: p[0]**2 + p[1]**2)

La funzione sorted() utililizza la funzione anonima p che somma le coordinate (x;y) e infine ordina i risultati in modo crescente.

[(1, 1), (0, 2), (3, 4)]

Puoi anche ordinare un dizionario basato sul valore.

Ad esempio, crea un dizionario.

dizionario = {'a': 5, 'b': 1, 'c': 8}

Poi ordina il dizionario in base al valore in modo crescente

sorted(dizionario.items(), key=lambda x: x[1])

Python restitisce il dizionario ordinato.

[('b', 1), ('a', 5), ('c', 8)]

Spero che questa guida ti aiuti a utilizzare sorted() in modo più efficace.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin