Lavorare con i set Python

In Python, un set è una raccolta non ordinata di elementi univoci. I set sono utili quando devi memorizzare più valori ma non ti interessa l'ordine di tali valori e vuoi assicurarti che non ci siano elementi duplicati.

Creazione di set

Per creare un set, si usano le parentesi graffe {} o la funzione set(). Ecco alcuni esempi:

# Using curly braces
my_set = {1, 2, 3, 4, 5}

# Using the set() function
another_set = set([1, 2, 3, 4, 5])

Aggiungere e rimuovere elementi

Per aggiungere elementi a un set, usa il metodo add(). Per rimuovere elementi, puoi usare remove() o discard(). La differenza tra loro è che remove() solleverà un KeyError se l'elemento non esiste, mentre discard() no.

# Adding elements
my_set.add(6)

# Removing elements
my_set.remove(5)  # Will raise KeyError if 5 is not in the set
my_set.discard(10)  # Will not raise an error

Operazioni di set

I set Python supportano varie operazioni, come unione, intersezione, differenza e differenza simmetrica. Ecco come puoi usarli:

# Union
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1.union(set2)  # or set1 | set2

# Intersection
intersection_set = set1.intersection(set2)  # or set1 & set2

# Difference
difference_set = set1.difference(set2)  # or set1 - set2

# Symmetric Difference
symmetric_difference_set = set1.symmetric_difference(set2)  # or set1 ^ set2

Comprensioni di set

Proprio come le list comprehension, Python supporta anche le set comprehension. Queste consentono di creare set basati su iterabili esistenti. Ecco un esempio:

# Creating a set of squares
squares = {x ** 2 for x in range(10)}

Conclusione

I set sono un modo potente e flessibile per gestire raccolte di elementi univoci in Python. Capire come usare i set in modo efficace ti aiuterà a gestire i dati e a eseguire operazioni con efficienza e facilità.