Salta ai contenuti
Manuale LogoManuale Logo

Set (Insiemi)

Un set (insieme) è una raccolta di elementi con due regole fondamentali:

  1. Nessun duplicato: ogni elemento può comparire al massimo una volta
  2. Nessun ordine garantito: gli elementi non hanno una posizione fissa

Un set è simile a un sacchetto di palline colorate: sai quali colori contiene, ma non puoi chiedere l’elemento in una posizione precisa.

Si usano le parentesi graffe {}, come per i dizionari, ma senza le chiavi:

frutta = {"mela", "banana", "ciliegia"}
numeri = {1, 2, 3, 4, 5}

I duplicati vengono eliminati automaticamente:

con_duplicati = {1, 2, 2, 3, 3, 3}
print(con_duplicati) # {1, 2, 3}: solo valori unici
frutta = {"mela", "banana"}
frutta.add("ciliegia") # aggiunge un elemento
frutta.remove("banana") # rimuove (dà errore se non esiste)
frutta.discard("uva") # rimuove senza errore se non esiste
frutta = {"mela", "banana", "ciliegia"}
print("mela" in frutta) # True
print("uva" in frutta) # False

La ricerca di un elemento in un set è in genere più veloce che in una lista.

I set supportano anche le operazioni della matematica degli insiemi:

A = {1, 2, 3, 4}
B = {3, 4, 5, 6}

Unione: tutti gli elementi di A e di B.

print(A | B) # {1, 2, 3, 4, 5, 6}

Intersezione: solo gli elementi presenti in entrambi.

print(A & B) # {3, 4}

Differenza: gli elementi in A ma non in B.

print(A - B) # {1, 2}

Per eliminare i duplicati da una lista puoi convertirla in set e poi riconvertirla in lista:

lista = [1, 2, 2, 3, 3, 4, 1]
lista_pulita = list(set(lista))
print(lista_pulita) # [1, 2, 3, 4]
  • Non puoi accedere agli elementi per posizione: frutta[0] causa errore
  • Gli elementi devono essere immutabili: puoi mettere numeri, stringhe, tuple, ma non liste