![Lezioni di Python - 6.7 Set](https://www.meccanismocomplesso.org/wp-content/uploads/2018/04/Lezioni-di-Python-6.7-Set-1024x196.jpg)
I set
I set sono strutture dati simili a liste o dizionari. Questi vengono creati usando le parentesi {} o direttamente la funzione set(). Questa struttura dati condivide alcune funzionalità con le liste, per esempio l’uso della clausola in per sapere se un particolare valore è contenuto all’interno.
set1 = {1,4,6,3}
set2 = set(["Uno","Due","Tre"])
print(3 in set1)
print("Uno" in set2)
eseguendo
>>>
True
True
I set differiscono dalle liste sotto molti aspetti, per esempio non sono ordinati e quindi non esistono indici che li referenziano all’interno. Inoltre non possono contenere valori duplicati. Per quanto riguarda la performance, l’indagine se un valore sia contenuto all’interno di un set è più efficiente rispetto a quella effettuata per una lista.
Per aggiungere un elemento ad un set si usa il metodo add() (nelle liste si usa append()), per rimuoverlo si usa remove() ed il metodo pop() restituisce il primo che è stato inserito eliminandolo dal set.
set1 = set()
set1.add(1)
set1.add(4)
set1.add(6)
print(set1)
print(set1.pop())
print(set1)
set1.remove(6)
print(set1)
eseguendo
>>>
{1, 4, 6}
1
{4, 6}
{4}
Operatori su set
I set possono essere utilizzati per effettuare alcune operazioni matematiche tipiche degli insiemi.
- Unione – l’operatore | combina due set per formarne uno nuovo
- Intersezione – l’operatore & restituisce un nuovo set che contiene i valori compresi in entrambe i set iniziali
- Differenza – l’operatore – restituisce i valori compresi nel primo set che non sono presenti nel secondo
- Differenza simmetrica – l’operatore ^ restituisce i valori dei due set che non sono presenti in entrambe
Vediamo un esempio
A = {1,4,6,3}
B = {4,5,9,2}
print(A | B)
print(A & B)
print(A - B)
print(A ^ B)
eseguendo
>>>
{1, 2, 3, 4, 5, 6, 9}
{4}
{1, 3, 6}
{1, 2, 3, 5, 6, 9}