I set e i frozenset sono due tipi di collezioni in Python utilizzate per rappresentare insiemi di elementi univoci.
Set
==Un set in Python è una collezione non ordinata di elementi univoci. Questo significa che, a differenza delle liste o delle tuple, un set non può contenere duplicati.== I set sono implementati utilizzando una struttura dati detta “hash table”, che consente di eseguire operazioni di inserimento, rimozione e verifica della presenza di un elemento in tempo quasi costante. I set sono mutabili, il che significa che è possibile modificarli dopo la loro creazione.
Ecco come è possibile creare un set in Python:
# Creazione di un set
my_set = {1, 2, 3, 4, 5}In questo esempio, abbiamo creato un set denominato my_set contenente cinque elementi. Nota che utilizziamo le parentesi graffe {} per definire un set.
I set supportano una serie di operazioni comuni, tra cui:
- Aggiunta di elementi: Puoi aggiungere un elemento a un set utilizzando il metodo
add().
my_set.add(6)- Rimozione di elementi: Puoi rimuovere un elemento da un set utilizzando il metodo
remove().
my_set.remove(3)- Unione di set: Puoi unire due set utilizzando l’operatore di unione
|o il metodounion().
set1 = {1, 2, 3}
set2 = {3, 4, 5}
union_set = set1 | set2 # Oppure union_set = set1.union(set2)- Intersezione di set: Puoi ottenere l’intersezione di due set utilizzando l’operatore di intersezione
&o il metodointersection().
intersection_set = set1 & set2 # Oppure intersection_set = set1.intersection(set2)- Differenza di set: Puoi ottenere la differenza tra due set utilizzando l’operatore di differenza
-o il metododifference().
difference_set = set1 - set2 # Oppure difference_set = set1.difference(set2)- Verifica della presenza di un elemento: Puoi verificare se un elemento è presente in un set utilizzando l’operatore
in.
element_present = 3 in set1 # RestituirĂ True- Iterazione sui set: Puoi iterare sugli elementi di un set utilizzando un ciclo
for.
for element in my_set:
print(element)frozenset
A differenza dei set, ==i frozenset in Python sono immutabili, il che significa che non è possibile modificarli dopo la loro creazione==.
Questo li rende utili quando è necessario garantire che un insieme di elementi rimanga costante nel tempo.
I frozenset sono implementati utilizzando una struttura dati simile a un set, ma questa struttura dati è immutabile.
Ecco come è possibile creare un frozenset in Python:
# Creazione di un `frozenset`
my_`frozenset` = `frozenset`([1, 2, 3, 4, 5])In questo esempio, abbiamo creato un frozenset denominato my_frozenset“ contenente gli stessi elementi del set precedente.
Poiché i frozenset sono immutabili, non è possibile aggiungere o rimuovere elementi da un frozenset. Tuttavia, puoi eseguire operazioni come l’intersezione, la differenza e la verifica della presenza di elementi nello stesso modo in cui lo faresti con un set.
Ecco alcune operazioni comuni con i frozenset:
- Intersezione di
frozenset: Puoi ottenere l’intersezione di duefrozensetutilizzando l’operatore di intersezione&o il metodointersection().
`frozenset`1 = `frozenset`([1, 2, 3])
`frozenset`2 = `frozenset`([3, 4, 5])
intersection_`frozenset` = `frozenset`1 & `frozenset`2 # Oppure intersection_`frozenset` = `frozenset`1.intersection(`frozenset`2)- Differenza di
frozenset: Puoi ottenere la differenza tra duefrozensetutilizzando l’operatore di differenza-o il metododifference().
difference_`frozenset` = `frozenset`1 - `frozenset`2 # Oppure difference_`frozenset` = `frozenset`1.difference(`frozenset`2)- Verifica della presenza di un elemento in un
frozenset: Puoi verificare se un elemento è presente in unfrozensetutilizzando l’operatorein.
element_present = 3 in `frozenset`1 # RestituirĂ True- Iterazione sui
frozenset: Puoi iterare sugli elementi di unfrozensetutilizzando un ciclofornello stesso modo in cui lo faresti con un set.
for element in my_`frozenset`:
print(element)Un’altra caratteristica importante dei frozenset è che possono essere utilizzati come chiavi nei dizionari, a differenza dei set mutabili. Questo è possibile poiché i frozenset sono immutabili e quindi hashabili.
my_dict = {my_`frozenset`: "Valore del `frozenset`"}Inoltre, poiché i frozenset sono immutabili, sono più adatti per essere utilizzati in contesti in cui è necessaria l’immutabilità , ad esempio all’interno di dizionari o come elementi di set più grandi.
Differenze chiave tra set e frozenset
- MutabilitĂ : I
setsono mutabili, il che significa che è possibile modificarli dopo la loro creazione, mentre ifrozensetsono immutabili e non possono essere modificati. - Hashability: I
frozensetsono hashabili e possono essere utilizzati come chiavi nei dizionari, mentre isetmutabili non possono essere utilizzati come chiavi nei dizionari poiché non sono hashabili. - Operazioni di inserimento e rimozione: I
setsupportano operazioni di inserimento e rimozione di elementi, mentre ifrozensetnon supportano queste operazioni poiché sono immutabili. - Utilizzo: I
setsono utilizzati quando è necessario un insieme mutabile di elementi, mentre ifrozensetsono utilizzati quando è necessario garantire che l’insieme rimanga costante e immutabile nel tempo.