Sostieni AppuntiFacili con una piccola donazione su PayPal
Dona con PayPalI 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"}
INFO
I set sono particolarmente utili in problemi di analisi dati, filtraggio, confronto tra insiemi e logica matematica.
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]) |
numeri = {1, 2, 2, 3, 3, 3}
print(numeri) # Output possibile: {1, 2, 3}
WARNING
Poiché i set non sono ordinati, l’output può cambiare ordine a ogni esecuzione.
colori = {"rosso", "verde", "blu"}
numeri = set([1, 2, 3, 4])
WARNING
Attenzione al set vuoto!
sbagliato = {} # dizionario!
corretto = set() # set vuoto I set non supportano l’accesso diretto tramite indice.
È necessario usare un ciclo for.
animali = {"gatto", "cane", "pesce"}
for a in animali:
print(a)
inprint("cane" in animali) # True
print("leone" in animali) # False
TIP
Il controllo di appartenenza in un set è molto più veloce rispetto a liste e tuple.
add()animali.add("scimmia")
update()animali_tropicali = {"tucano", "canguro"}
animali.update(animali_tropicali)
È possibile usare update() anche con liste o tuple:
animali.update(["leone", "tigre"])
| 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()
WARNING
Usa discard() se non sei sicuro che l’elemento esista.
I set supportano operazioni matematiche molto potenti.
| o union())A = {1, 2, 3}
B = {3, 4, 5}
print(A | B) # {1, 2, 3, 4, 5}
&)print(A & B) # {3}
-)print(A - B) # {1, 2}
^)print(A ^ B) # {1, 2, 4, 5}
INFO
Queste operazioni rendono i set ideali per confrontare dati, come utenti comuni o elementi mancanti.
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}
| Collezione | Ordinata | Duplicati | Modificabile |
|---|---|---|---|
| Lista | ✔️ | ✔️ | ✔️ |
| Tupla | ✔️ | ✔️ | ❌ |
| Set | ❌ | ❌ | ✔️ |
| Dizionario | ✔️* | ❌ (chiavi) | ✔️ |
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?
Data una lista di numeri, trasformala in un set per eliminare i duplicati.
Crea due set di numeri e stampa solo quelli in comune.
Dati due set di studenti iscritti a due corsi, stampa chi è iscritto solo al primo.
Crea un set con tutti i numeri dispari da 1 a 50.
Prenota una lezione