Set
- #python
- #programmazione
- #collezioni
- #set
In questa lezione
- 1. Introduzione
- 2. Caratteristiche fondamentali dei set
- 2.1 Esempio di duplicati ignorati
- 3. Creazione di un set
- 3.1 Set letterale
- 3.2 Creazione con set()
- 4. Accesso agli elementi
- 4.1 Verifica di appartenenza in
- 5. Aggiungere elementi
- 5.1 Metodo add()
- 5.2 Metodo update()
- 6. Rimuovere elementi
- 7. Operazioni tra set (insiemi)
- 7.1 Unione (| o union())
- 7.2 Intersezione (&)
- 7.3 Differenza (-)
- 7.4 Differenza simmetrica (^)
- 8. Set comprehension
- 9. Confronto con altre collezioni
- 10. Quiz a risposta multipla
- 11. Esercizi
- 11.1 Esercizio - Eliminare duplicati
- 11.2 Esercizio - Intersezione
- 11.3 Esercizio - Differenza
- 11.4 Esercizio - Set comprehension
1. Introduzione
I set in Python sono collezioni non ordinate di elementi unici. Vengono utilizzati quando è importante evitare duplicati e verificare rapidamente la presenza di un valore.
animali = {"gatto", "cane", "pesce"}
Nota
I set sono particolarmente utili in problemi di analisi dati, filtraggio, confronto tra insiemi e logica matematica.
2. Caratteristiche fondamentali dei set
I set hanno alcune proprietà chiave che li distinguono dalle altre collezioni.
| Caratteristica | Descrizione |
|---|---|
| Non ordinati | Gli elementi non hanno una posizione fissa |
| Mutabili | È possibile aggiungere o rimuovere elementi |
| Senza duplicati | I valori ripetuti vengono ignorati |
| Indicizzazione assente | Non si può accedere con indici (set[0]) |
2.1 Esempio di duplicati ignorati
numeri = {1, 2, 2, 3, 3, 3}
print(numeri) # Output possibile: {1, 2, 3}
Attenzione
Poiché i set non sono ordinati, l’output può cambiare ordine a ogni esecuzione.
3. Creazione di un set
3.1 Set letterale
colori = {"rosso", "verde", "blu"}
3.2 Creazione con set()
numeri = set([1, 2, 3, 4])
Attenzione
Attenzione al set vuoto!
sbagliato = {} # dizionario!
corretto = set() # set vuoto 4. Accesso agli elementi
I set non supportano l’accesso diretto tramite indice.
È necessario usare un ciclo for.
animali = {"gatto", "cane", "pesce"}
for a in animali:
print(a)
4.1 Verifica di appartenenza in
print("cane" in animali) # True
print("leone" in animali) # False
Suggerimento
Il controllo di appartenenza in un set è molto più veloce rispetto a liste e tuple.
5. Aggiungere elementi
5.1 Metodo add()
animali.add("scimmia")
5.2 Metodo update()
animali_tropicali = {"tucano", "canguro"}
animali.update(animali_tropicali)
È possibile usare update() anche con liste o tuple:
animali.update(["leone", "tigre"])
6. Rimuovere elementi
| Metodo | Descrizione |
|---|---|
remove(x) | Rimuove x, errore se assente |
discard(x) | Rimuove x, nessun errore |
pop() | Rimuove un elemento casuale |
clear() | Svuota il set |
del set | Elimina il set |
Esempi
animali.remove("cane")
animali.discard("leone")
elemento = animali.pop()
animali.clear()
Attenzione
Usa discard() se non sei sicuro che l’elemento esista.
7. Operazioni tra set (insiemi)
I set supportano operazioni matematiche molto potenti.
7.1 Unione (| o union())
A = {1, 2, 3}
B = {3, 4, 5}
print(A | B) # {1, 2, 3, 4, 5}
7.2 Intersezione (&)
print(A & B) # {3}
7.3 Differenza (-)
print(A - B) # {1, 2}
7.4 Differenza simmetrica (^)
print(A ^ B) # {1, 2, 4, 5}
Nota
Queste operazioni rendono i set ideali per confrontare dati, come utenti comuni o elementi mancanti.
8. Set comprehension
Simile alle list comprehension, ma restituisce un set.
quadrati = {x**2 for x in range(1, 6)}
print(quadrati)
Con condizione:
pari = {x for x in range(10) if x % 2 == 0}
9. Confronto con altre collezioni
| Collezione | Ordinata | Duplicati | Modificabile |
|---|---|---|---|
| Lista | ✔️ | ✔️ | ✔️ |
| Tupla | ✔️ | ✔️ | ❌ |
| Set | ❌ | ❌ | ✔️ |
| Dizionario | ✔️* | ❌ (chiavi) | ✔️ |
10. Quiz a risposta multipla
Mettiti alla prova
0/5 risposte
1) Qual è una caratteristica fondamentale dei set?
2) Come si crea un set vuoto?
3) Quale metodo NON genera errore se l'elemento non esiste?
4) Cosa restituisce A & B?
5) A cosa servono principalmente i set?
11. Esercizi
11.1 Esercizio - Eliminare duplicati
Data una lista di numeri, trasformala in un set per eliminare i duplicati.
11.2 Esercizio - Intersezione
Crea due set di numeri e stampa solo quelli in comune.
11.3 Esercizio - Differenza
Dati due set di studenti iscritti a due corsi, stampa chi è iscritto solo al primo.
11.4 Esercizio - Set comprehension
Crea un set con tutti i numeri dispari da 1 a 50.