Articolo originale: Python Set – How to Create Sets in Python

Puoi usare i set in Python per immagazzinare una collezione di dati in una singola variabile.

Tutte le strutture di dati integrate in Python, come le liste, i dizionari e le tuple, hanno delle caratteristiche distinte.

Ecco alcune caratteristiche dei set in Python:

  • Non sono ammessi elementi duplicati. Se un elemento compare più volte, solo uno verrà riconosciuto nel set.
  • Gli elementi di un set sono in ordine casuale. L'ordine del set cambia ogni volta che viene usato.
  • Il valore degli elementi di un set non può essere modificato/cambiato una volta che il set è stato creato.

In questo articolo, imparerai come creare i set. Imparerai anche come accedere, aggiungere e rimuovere elementi da un set in Python.

Concluderemo parlando di alcuni casi d'uso dei set nella programmazione e nella matematica con Python.

Come Creare Set in Python

Usiamo le parentesi graffe per immagazzinare degli elementi in un set. Ecco come appare un set:

nomeSet = {"John", "Jane", "Doe"}

print(nomeSet)
# {'Jane', 'Doe', 'John'}

Nel codice in alto, abbiamo creato un set chiamato nomeSet.

Noterai che quando il set viene stampato, i valori appaiono in un ordine diverso. Questa è una delle caratteristiche dei set di Python che ho menzionato prima.

Ecco un altro esempio con un elemento duplicato:

nomeSet = {"John", "Jane", "Doe", "Jane"}

print(nomeSet)
# {'Jane', 'Doe', 'John'}

Il duplicato di "Jane" è stato ignorato nell'esempio qui sopra. Questo perché gli elementi duplicati non sono ammessi.

Come Accedere agli Elementi di un Set in Python

Puoi usare un loop per accedere agli elementi di un set e stamparli. Non puoi usare l'indice degli elementi per avere accesso ad essi, poiché l'ordine cambia costantemente– nessun elemento mantiene il suo indice.

Ecco un esempio:

nomeSet = {"John", "Jane", "Doe"}

for nomi in nomeSet:
    print(nomi)
    # John
    # Doe
    # Jane

Usiamo un loop for per stampare gli elementi in nomeSet.

Nella prossima sezione, vedrai come aggiungere gli elementi a un set.

Come Aggiungere Elementi a un Set in Python

Puoi aggiungere un elemento a un set in Python usando il metodo add() con il nuovo elemento da aggiungere passato come parametro.

Ecco un esempio:

nomeSet = {"John", "Jane", "Doe"}

nomeSet.add("Ihechikara")

print(nomeSet)
# {'John', 'Ihechikara', 'Doe', 'Jane'}

Abbiamo aggiunto un nuovo elemento – "Ihechikara" – al set: nomeSet.add("Ihechikara").

Puoi anche aggiungere un elemento da un altro set o da altre strutture di dati (liste, dizionari, e tuple) a un set usando il metodo update().

Ecco un esempio:

nomeSet = {"John", "Jane", "Doe"}

nomeSet2 = {"Jade", "Jay"}

nomeSet.update(nomeSet2)

print(nomeSet)
# {'Doe', 'Jay', 'Jane', 'Jade', 'John'}

Per aggiungere i nomi da nomeSet2 a nomeSet, abbiamo passato nomeSet2 come parametro al metodo update(): nomeSet.update(nomeSet2).

Come Rimuovere Elementi da un Set in Python

Ci sono diversi metodi che puoi usare per rimuovere elementi da un set. Diamoci un'occhiata.

Come Rimuovere Elementi da un Set in Python Usando il Metodo discard()

Puoi usare il metodo discard() per rimuovere un elemento specifico. Ecco un esempio:

nomeSet = {"John", "Jane", "Doe"}

nomeSet.discard("John")

print(nomeSet)
# {'Doe', 'Jane'}

Nell'esempio in alto, "John" è stato passato come parametro al metodo discard() ed è stato dunque rimosso dal set.

Come Rimuovere Elementi da un Set in Python Usando il Metodo remove()

Il metodo remove() funziona allo stesso modo del metodo discard().

nomeSet = {"John", "Jane", "Doe"}

nomeSet.remove("Jane")

print(nomeSet)
# {'John', 'Doe'}

Come Svuotare un Set in Python Usando il Metodo clear()

Per eliminare tutti gli elementi in un set, usiamo il metodo clear().

Ecco un esempio:

nomeSet = {"John", "Jane", "Doe"}

nomeSet.clear()

print(nomeSet)
# set()

Quando Usare i Set in Python

In questa sezione, parleremo di due importanti casi d'uso dei set in Python.

Possiamo usare i set per rimuovere elementi duplicati in altre strutture di dati.

Possiamo anche compiere delle fantastiche operazioni matematiche come ottenere l'unione, l'intersezione, la differenza e la differenza simmetrica di due o più set.

Come Usare i Set per Rimuovere Elementi Duplicati in Altre Strutture di Dati

Possiamo usare i set per liberarci di elementi duplicati in altre strutture di dati come liste e tuple.

Ciò è utile quando hai a che fare con insiemi di dati molto grandi che richiedono solo le unità individuali degli elementi e non il numero di occorrenze degli elementi.

Ecco un esempio:

listaNumeri = [2, 2, 4, 8, 9, 10, 8, 2, 5, 7, 3, 4, 7, 9]

setNumeri = set(listaNumeri)

print(setNumeri)
# {2, 3, 4, 5, 7, 8, 9, 10}

Nel codice qui sopra, abbiamo creato una lista di numeri chiamata listaNumeri che ha molteplici occorrenze di alcuni numeri: [2, 2, 4, 8, 9, 10, 8, 2, 5, 7, 3, 4, 7, 9].

Usando il metodo set(), abbiamo convertito la lista listaNumeri in un set: setNumeri = set(listaNumeri).

Quando il nuovo set è stato stampato, tutti i duplicati dei numeri sono stati rimossi - ci viene restituita solo un'occorrenza di ogni numero: {2, 3, 4, 5, 7, 8, 9, 10}.

Come Compiere Operazioni Matematiche Usando i Set in Python

I set in Python sono simili agli insiemi in matematica, e possiamo ottenere vari risultati a seconda della relazione che esiste tra gli insiemi.

In questa sezione, vedrai come ottenere l'unione, l'intersezione, la differenza e la differenza simmetrica tra set in Python.

Puoi compiere tutte le operazioni in questa sezione usando più di due set. Per mantenere la cosa il più semplice possibile, useremo solo due set per ogni esempio.

Come Ottenere l'Unione di Set in Python

L'unione di due set è un set con tutti gli elementi individuali che esistono in entrambi i set. Nell'unione, i duplicati vengono ignorati.

Ecco un esempio:

primoSet = {2, 3, 4, 5}

secondoSet = {1, 3, 5, 7}

print(primoSet | secondoSet)
# {1, 2, 3, 4, 5, 7}

Nell'esempio in alto, abbiamo due set – primoSet = {2, 3, 4, 5} e secondoSet = {1, 3, 5, 7}.

Usando l'operatore barra verticale (|), siamo in grado di ottenere l'unione dei due set: primoSet | secondoSet.

L'unione dei set è la seguente: {1, 2, 3, 4, 5, 7}. Come puoi vedere, i due set sono stati uniti per formare un solo set senza alcun duplicato.

Come Ottenere l'Intersezione di Set in Python

L'intersezione di due set è un set di elementi che sono comuni a entrambi i set. Nel nostro caso, è il set di elementi che compare sia in primoSet che in secondoSet.

Ecco un esempio:

primoSet = {2, 3, 4, 5}

secondoSet = {1, 3, 5, 7}

print(primoSet & secondoSet)
# {3, 5}

In questo esempio, stiamo usando l'operatore & per ottenere l'intersezione tra primoSet e secondoSet: primoSet & secondoSet.

Ci viene restituito {3, 5} perché 3 e 5 compaiono in entrambi i set.

Come Ottenere la Differenza tra Set in Python

La differenza tra due set è un set di tutti gli elementi che esistono in un set ma non nell'altro.

Ecco un esempio:

primoSet = {2, 3, 4, 5}

secondoSet = {1, 3, 5, 7}

print(primoSet - secondoSet)
# {2, 4}

Nell'esempio in alto, stiamo ottenendo un set di elementi che esiste in primoSet ma non in secondoSet.

Abbiamo usato l'operatore - per ottenere questo risultato: primoSet - secondoSet.

Il risultato dell'operazione è 2 e 4.

Come Ottenere la Differenza Simmetrica tra Set in Python

La differenza simmetrica di due set è un set di elementi che esistono in uno dei due set ma non in entrambi.

Nell'ultima sezione, abbiamo avuto come risultato elementi che esistono in un set ma non nell'altro. La differenza simmetrica ha come risultato gli elementi che esistono in ciascun set ma non in entrambi.

primoSet = {2, 3, 4, 5}

secondoSet = {1, 3, 5, 7}

print(primoSet ^ secondoSet)
# {1, 2, 4, 7}

Abbiamo usato l'operatore ^ per ottenere la differenza simmetrica dei due set: primoSet ^ secondoSet.

Il risultato è stato 1, 2, 4, 7.  Nessuno di questi elementi compare in entrambi i set.

In questo articolo, abbiamo parlato dei set e di come crearli in Python.

I set non ammettono elementi duplicati, hanno un ordine casuale e gli elementi in essi contenuti non possono essere modificati.

Abbiamo anche visto come accedere, aggiungere e rimuovere elementi dai set usando metodi diversi.

Infine, abbiamo parlato di quando usare i set in Python. Abbiamo visto alcune applicazioni dei set in Python e il loro utilizzo nelle operazioni matematiche.

Buona programmazione!