Un set in Python è una collezione non ordinata di elementi unici, cioè non contiene duplicati. I set sono mutabili, il che significa che possiamo aggiungere o rimuovere elementi dopo la loro creazione.
In Python, i set sono creati mettendo gli elementi (numeri, stringhe ecc.) tra parentesi graffe `{}`, separati da virgole. Alternativamente, si può usare la funzione `set()`.
Ecco un esempio di creazione di un set:
```
set1 = {1, 2, 3, 4, 5}
print(set1) # Output: {1, 2, 3, 4, 5}
```
Per aggiungere un elemento a un set, utilizziamo il metodo `add()`. Per aggiungere più elementi, utilizziamo il metodo `update()`. Questi metodi modificheranno il set originale.
```
set1.add(6)
print(set1) # Output: {1, 2, 3, 4, 5, 6}
set1.update([7, 8, 9])
print(set1) # Output: {1, 2, 3, 4, 5, 6, 7, 8, 9}
```
Per rimuovere un elemento, possiamo usare i metodi `remove()` o `discard()`. La differenza tra i due è che `remove()` lancerà un errore se l’elemento non esiste, mentre `discard()` no.
```
set1.remove(1)
print(set1) # Output: {2, 3, 4, 5, 6, 7, 8, 9}
set1.discard(10)
print(set1) # Output: {2, 3, 4, 5, 6, 7, 8, 9}
```
In aggiunta, ci sono molti altri metodi disponibili per i set, come `union()`, `intersection()`, `difference()`, che permettono di eseguire operazioni standard di insieme.
```
set2 = {1, 2, 3}
set3 = {2, 3, 4}
print(set2.union(set3)) # Output: {1, 2, 3, 4}
print(set2.intersection(set3)) # Output: {2, 3}
print(set2.difference(set3)) # Output: {1}
```
Nota: A differenza delle liste e delle tuple, i set non possono contenere elementi duplicati, quindi sono spesso usati per rimuovere duplicati da una lista o una tupla.