Set Python

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

set Python unione intersezione differenza

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

  1. Qual è la differenza tra lista e set?
  2. Perché i duplicati vengono eliminati?
  3. Che differenza c’è tra remove() e discard()?
  4. Quando usare un frozenset?

12.10 Esercizi

  1. Crea un set con numeri duplicati e verifica che vengano rimossi.
  2. Calcola unione e intersezione di due set.
  3. Scrivi un programma che elimini i duplicati da una lista usando un set.

Approfondimento ufficiale:

documentazione Python sui set


Articoli simili