Capitolo 12 – Set Python
In questo capitolo studiamo i set Python, una struttura dati fondamentale per gestire elementi unici, eliminare duplicati ed eseguire operazioni insiemistiche in modo rapido ed efficiente.
Materiale originale a cura di Alfredo Di Fiore – megistone.it
Manuale completo:
vai all’indice del corso
I set sono strutture dati mutabili che memorizzano elementi unici non ordinati, particolarmente utili per eliminare duplicati e svolgere operazioni insiemistiche.
12.1 Obiettivi formativi
- comprendere la natura dei set;
- distinguere unicità e non ordinamento;
- eseguire unione, intersezione e differenza;
- usare i principali metodi dei set;
- conoscere il concetto di
frozenset.
12.2 Che cosa sono i set
Un set è una struttura dati che contiene elementi unici.
Se si inseriscono duplicati, questi vengono automaticamente eliminati.
numeri = {1, 2, 3, 3, 4, 4}
print(numeri)
Output:
{1, 2, 3, 4}
Questa proprietà rende i set ideali per rimuovere duplicati.
12.3 Creazione di set
I set possono essere creati con parentesi graffe oppure con il costruttore set().
a = {1, 2, 3}
b = set([3, 4, 5])
Per creare un set vuoto bisogna usare:
s = set()
Usare {} creerebbe invece un dizionario vuoto.
⚠️ Errore comune
Molti studenti pensano che {} rappresenti un set vuoto, ma in Python è un dizionario.
12.4 Metodi principali dei set
| Metodo | Funzione | Esempio |
|---|---|---|
add() |
aggiunge un elemento | s.add(5) |
remove() |
rimuove un elemento | s.remove(2) |
discard() |
rimuove senza errore | s.discard(2) |
clear() |
svuota il set | s.clear() |
12.5 Operazioni dei set Python

I Python supportano le classiche operazioni della teoria degli insiemi.
a = {1, 2, 3}
b = {3, 4, 5}
print(a | b) # unione
print(a & b) # intersezione
print(a - b) # differenza
print(a ^ b) # differenza simmetrica
Queste operazioni sono molto efficienti e potenti.
💡 Applicazione pratica
I set sono spesso usati per confrontare collezioni di dati, trovare elementi comuni e rimuovere duplicati.
12.6 Iterazione dei set in Python
Anche i set possono essere iterati con un ciclo for.
numeri = {1, 2, 3, 4}
for n in numeri:
print(n)
L’ordine non è garantito.
12.7 Frozenset nei set
Python offre anche la versione immutabile del set: frozenset.
a = frozenset([1, 2, 3])
Un frozenset non può essere modificato dopo la creazione.
Questo è utile quando serve usare un insieme come chiave di un dizionario o come elemento di un altro set.
12.8 Riepilogo sui set Python
- i set contengono elementi unici;
- non mantengono un ordine garantito;
- sono ideali per eliminare duplicati;
- supportano operazioni insiemistiche efficienti;
frozensetè la variante immutabile.
12.9 Domande tipiche d’esame
- Qual è la differenza tra lista e set?
- Perché i duplicati vengono eliminati?
- Che differenza c’è tra
remove()ediscard()? - Quando usare un
frozenset?
12.10 Esercizi
- Crea un set con numeri duplicati e verifica che vengano rimossi.
- Calcola unione e intersezione di due set.
- Scrivi un programma che elimini i duplicati da una lista usando un set.
Approfondimento ufficiale:
documentazione Python sui set