Ordina un set in Python

Hemank Mehtani 13 luglio 2021
  1. Usa la funzione sorted() per ordinare un set in Python
  2. Usa il metodo sort() per ordinare un set in Python
Ordina un set in Python

Gli insiemi sono una raccolta non ordinata e non indicizzata senza elementi duplicati. I set sono uno dei quattro tipi di dati incorporati disponibili in Python e sono scritti usando parentesi graffe.

Dato che gli insiemi non sono ordinati, non è possibile ordinare i valori di un insieme. Tuttavia, se stampiamo un set, viene visualizzato in modo ordinato.

Vedi il codice qui sotto.

s = {5, 2, 7, 1, 8}
print(s)

Produzione:

{1, 2, 5, 7, 8}

Se vogliamo, possiamo usare diverse funzioni per ordinare un set e restituire un elenco. Questi sono discussi di seguito.

Usa la funzione sorted() per ordinare un set in Python

La funzione sorted() è una funzione incorporata in Python che restituisce una sequenza ordinata (elenco, tupla, stringa) o una raccolta ordinata (set, dizionario) sotto forma di elenco. La funzione sorted() non ha effetto sulla sequenza iterabile originale in quanto fornisce un nuovo output ordinato.

Per esempio,

s = {5, 2, 7, 1, 8}
print(sorted(s))

Produzione:

[1, 2, 5, 7, 8]

Nota che la funzione sorted() restituisce una lista invece di un set. Possiamo di nuovo convertire questa lista in un insieme usando la funzione set(). Tuttavia, questo è ridondante poiché i set non sono ordinati.

Usa il metodo sort() per ordinare un set in Python

Il metodo sort() viene utilizzato per ordinare gli elementi dati in un elenco in ordine crescente o decrescente. È un processo distruttivo, cioè, a differenza della funzione sorted(), il metodo sort() ordina gli elementi nella lista originale stesso.

Non possiamo usare questa funzione con un set. Tuttavia, possiamo racchiudere un set all’interno di un elenco e li ordinerà.

Per esempio,

s = [{5, 2, 7, 1, 8}]
s.sort()
print(s)

Produzione:

[{1, 2, 5, 7, 8}]

Nota che la funzione sort() restituisce anche l’output finale in una lista. Possiamo adottare un approccio simile anche con la funzione sorted().

D’altra parte, possiamo convertire l’insieme in una lista usando la funzione list() e ordinarla con questo metodo.

Vedi il codice qui sotto.

s = {5, 2, 7, 1, 8}
l = list(s)
l.sort()
print(l)

Produzione:

[1, 2, 5, 7, 8]