Set
Set in Python¶
Obiettivi della Lezione¶
Al termine di questa lezione, sarai in grado di:
- Comprendere cosa sono i set in Python e come differiscono da altre strutture dati.
- Creare e manipolare set.
- Utilizzare metodi e operazioni comuni sui set.
- Applicare i set in contesti pratici per risolvere problemi.
Introduzione¶
I set sono una struttura dati fondamentale in Python che consente di memorizzare una collezione non ordinata di elementi unici e immutabili. Sono particolarmente utili quando è necessario eliminare duplicati da una lista o effettuare operazioni matematiche come unioni, intersezioni e differenze tra insiemi di dati.
Spiegazione Teorica¶
Cosa sono i Set?¶
Un set è una collezione non ordinata di elementi unici e immutabili. A differenza di liste e tuple, i set non mantengono l’ordine degli elementi e non permettono elementi duplicati.
Caratteristiche principali dei set:
- Non ordinati: Gli elementi non hanno un ordine specifico.
- Unici: Non possono esistere duplicati all’interno del set.
- Elementi immutabili: Gli elementi devono essere di un tipo immutabile (ad esempio, numeri, stringhe, tuple).
Perché usare i Set?¶
- Eliminare duplicati: Convertendo una lista in un set, si rimuovono automaticamente tutti i duplicati.
- Operazioni matematiche: Supportano operazioni come unione, intersezione, differenza e differenza simmetrica.
- Verifiche rapide: Permettono di verificare rapidamente se un elemento appartiene al set grazie all’implementazione basata su hash.
Esempi Pratici di Codice¶
Creazione di un Set¶
# Creazione di un set vuoto
my_set = set()
# Creazione di un set con elementi
fruits = {"mela", "banana", "arancia"}
print(fruits)
{'banana', 'arancia', 'mela'}
Caratteristica degli Elementi Unici¶
# Tentativo di aggiungere duplicati
numbers = {1, 2, 3, 4, 4, 5}
print(numbers)
{1, 2, 3, 4, 5}
Nell’output, il numero ‘4’ appare una sola volta perché i duplicati sono eliminati.
Aggiungere e Rimuovere Elementi¶
# Aggiungere un elemento
fruits.add("kiwi")
print(fruits)
# Rimuovere un elemento
fruits.remove("banana")
print(fruits)
{'banana', 'kiwi', 'arancia', 'mela'} {'kiwi', 'arancia', 'mela'}
set_a = {1, 2, 3}
set_b = {3, 4, 5}
union_set = set_a.union(set_b)
print("Unione:", union_set)
Unione: {1, 2, 3, 4, 5}
Intersezione¶
intersection_set = set_a.intersection(set_b)
print("Intersezione:", intersection_set)
Intersezione: {3}
Differenza¶
difference_set = set_a.difference(set_b)
print("Differenza (A - B):", difference_set)
Differenza (A - B): {1, 2}
Differenza Simmetrica¶
sym_diff_set = set_a.symmetric_difference(set_b)
print("Differenza Simmetrica:", sym_diff_set)
Differenza Simmetrica: {1, 2, 4, 5}
Verificare l’Appartenenza¶
if "mela" in fruits:
print("La mela è presente nel set.")
else:
print("La mela non è presente nel set.")
La mela è presente nel set.
Esercizi Interattivi¶
Eliminare Duplicati da una Lista
Data la lista
numbers = [1, 2, 2, 3, 4, 4, 5]
, crea una nuova lista senza duplicati utilizzando i set.numbers = [1, 2, 2, 3, 4, 4, 5] # Il tuo codice qui unique_numbers = # ... print(unique_numbers)
Operazioni tra Set
Crea due set,
set_x = {'a', 'b', 'c'}
eset_y = {'b', 'c', 'd'}
, e trova:- L’unione dei due set.
- L’intersezione dei due set.
- La differenza simmetrica dei due set.
set_x = {'a', 'b', 'c'} set_y = {'b', 'c', 'd'} # Unione union_xy = # ... # Intersezione intersection_xy = # ... # Differenza Simmetrica sym_diff_xy = # ... print("Unione:", union_xy) print("Intersezione:", intersection_xy) print("Differenza Simmetrica:", sym_diff_xy)
Verifica di Sottoset
Verifica se
set_x
è un sottoinsieme diset_y
o viceversa.# Il tuo codice qui is_subset = # ... print("set_x è un sottoinsieme di set_y?", is_subset)
Buone Pratiche e Consigli¶
- Uso Appropriato dei Set: Utilizza i set quando hai bisogno di garantire l’unicità degli elementi o quando devi effettuare operazioni insiemistiche.
- Elementi Immutabili: Ricorda che gli elementi di un set devono essere immutabili. Evita di inserire liste o altri set al suo interno.
- Performance: Le operazioni di appartenenza (
in
) su un set sono molto più veloci rispetto a liste o tuple, specialmente con grandi quantità di dati.
Conclusione¶
I set sono uno strumento potente in Python per la gestione di collezioni di dati unici e per l’esecuzione di operazioni matematiche tra insiemi. Comprendendo come creare e manipolare i set, puoi scrivere codice più efficiente e pulito, soprattutto quando lavori con dati che richiedono unicità o operazioni insiemistiche.
Risorse Aggiuntive¶
- Documentazione Ufficiale Python: Data Structures – Sets
- Libro Consigliato: Python Crash Course di Eric Matthes
- Video Tutorial: Lists, Tuples, and Sets