Set (Insiemi)
Cosa sono i set?
Sezione intitolata “Cosa sono i set?”Un set (insieme) è una raccolta di elementi con due regole fondamentali:
- Nessun duplicato: ogni elemento può comparire al massimo una volta
- Nessun ordine garantito: gli elementi non hanno una posizione fissa
Un set è simile a un sacchetto di palline colorate: sai quali colori contiene, ma non puoi chiedere l’elemento in una posizione precisa.
Creare un set
Sezione intitolata “Creare un set”Si usano le parentesi graffe {}, come per i dizionari, ma senza le chiavi:
frutta = {"mela", "banana", "ciliegia"}numeri = {1, 2, 3, 4, 5}I duplicati vengono eliminati automaticamente:
con_duplicati = {1, 2, 2, 3, 3, 3}print(con_duplicati) # {1, 2, 3}: solo valori uniciAggiungere e rimuovere elementi
Sezione intitolata “Aggiungere e rimuovere elementi”frutta = {"mela", "banana"}
frutta.add("ciliegia") # aggiunge un elementofrutta.remove("banana") # rimuove (dà errore se non esiste)frutta.discard("uva") # rimuove senza errore se non esisteControllare se un elemento è presente
Sezione intitolata “Controllare se un elemento è presente”frutta = {"mela", "banana", "ciliegia"}print("mela" in frutta) # Trueprint("uva" in frutta) # FalseLa ricerca di un elemento in un set è in genere più veloce che in una lista.
Operazioni sugli insiemi
Sezione intitolata “Operazioni sugli insiemi”I set supportano anche le operazioni della matematica degli insiemi:
A = {1, 2, 3, 4}B = {3, 4, 5, 6}Unione: tutti gli elementi di A e di B.
print(A | B) # {1, 2, 3, 4, 5, 6}Intersezione: solo gli elementi presenti in entrambi.
print(A & B) # {3, 4}Differenza: gli elementi in A ma non in B.
print(A - B) # {1, 2}Eliminare i duplicati
Sezione intitolata “Eliminare i duplicati”Per eliminare i duplicati da una lista puoi convertirla in set e poi riconvertirla in lista:
lista = [1, 2, 2, 3, 3, 4, 1]lista_pulita = list(set(lista))print(lista_pulita) # [1, 2, 3, 4]Limiti dei set
Sezione intitolata “Limiti dei set”- Non puoi accedere agli elementi per posizione:
frutta[0]causa errore - Gli elementi devono essere immutabili: puoi mettere numeri, stringhe, tuple, ma non liste