Sostieni AppuntiFacili con una piccola donazione su PayPal

Dona con PayPal
AppuntiFacili
Torna Indietro Segnala errore

Set

✍️ Dennis Turco 🏷️ Informatica 📘 Python
Ultima modifica:
#python#programmazione#collezioni#set

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"}

INFO

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.

CaratteristicaDescrizione
Non ordinatiGli elementi non hanno una posizione fissa
MutabiliÈ possibile aggiungere o rimuovere elementi
Senza duplicatiI valori ripetuti vengono ignorati
Indicizzazione assenteNon 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}

WARNING

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])

WARNING

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

TIP

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

MetodoDescrizione
remove(x)Rimuove x, errore se assente
discard(x)Rimuove x, nessun errore
pop()Rimuove un elemento casuale
clear()Svuota il set
del setElimina 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.

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}

INFO

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

CollezioneOrdinataDuplicatiModificabile
Lista✔️✔️✔️
Tupla✔️✔️
Set✔️
Dizionario✔️*❌ (chiavi)✔️

10. Quiz a risposta multipla

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.

Prenota una lezione