Gli insiemi sono delle strutture dati che possono raccogliere dati senza però garantire un ordinamento, infatti non c’è un indice che possiamo usare per scorrere il loro contenuto e non ci possono essere elementi ripetuti.
Esploriamo insieme le funzioni fondamentali degli insiemi. Iniziamo creando un insieme come se fosse una lista, usando però le parentesi graffe:
s = {"a", "b", "e", "m"}
Possiamo visualizzare direttamente il contenuto di un insieme utilizzando print():
print(s)
Se creiamo un insieme con dei duplicati, questi saranno ignorati! Provate a scrivere:
s = {"mela", "banana", "pera", "mela"}
e poi stampatelo a video con:
print(s)
L’elemento “mela” comparirà una sola volta!
Possiamo costruire un insieme partendo da una lista e passandola all’istruzione set():
s = set([1, 2, 3, 2])
Aggiungiamo elementi all’insieme con add():
s.add(“pane”)
Li rimuoviamo con discard():
s = {1, 3, 4, 5, 6} print(s) s.discard(4) print(s)
C’è anche l’istruzione remove() ma se l’elemento non è presente si avrà un errore!
Per svuotare completamente un’insieme usiamo clear().
s = {1, 3, 4, 5, 6} print(s) s.clear() print(s)
Possiamo lavorare sugli insiemi con alcuni operatori che ci permettono di unirli, trovare la parte comune o eseguire differenze. Questi operatori sono detti “booleani”. Ecco un’esempio delle principali funzioni, provate a eseguirlo e osservate i differenti risultati:
A = {1, 2, 3, 4, 5} B = {4, 5, 6, 7, 8} C = A.union(B) print(C) C = A.intersection(B) print(C) C = A.difference(B) print(C) C = A.symmetric_difference(B) print(C)
Come per le altre strutture dati possiamo verificare se un elemento è presente in un insieme utilizzando l’operatore in:
S = {1, 3, 4, 5, 6} if (4 in S): print(“4 è presente”)
Possiamo scorrere gli elementi di un insieme con un ciclo for ma ricordate che non abbiamo garanzia dell’ordine!
S = {1, 3, 4, 5, 6} for el in S: print(el)