Gli insiemi immutabili (frozenset) in Python

In questa lezione vediamo come si crea un insieme immutabile nel linguaggio Python

Cos'è un insieme immutabile? Un insieme che non può essere modificato è chiamato "insieme immutabile" o "insieme costante". E' un insieme di elementi che non può essere modificato, non è possibile né aggiungere nuovi elementi, né rimuovere elementi esistenti. Ad esempio, l'insieme vuoto è un insieme immutabile, perché non è possibile inserire o togliere elementi dall'insieme.

In Python puoi creare un insieme immutabile tramite la funzione frozenset

frozenset(x)

Il parametro x è un insieme di elementi.

Ti faccio un esempio pratico.

Crea un insieme immutabile nella variabili A usando la funzione frozenset()

>>> A=frozenset([2,4,8,10])

Una volta creato, non puoi aggiungere nuovi elementi all'insieme A, né eliminare uno degli elementi appartenenti all'insieme A.

Se ci provi Python restituisce un messaggio di errore.

>>> A.add(12)
AttributeError: 'frozenset' object has no attribute 'add'

Puoi comunque utilizzare l'insieme frozenset nelle operazioni di unione, intersezione, differenza con gli insiemi di tipo set.

Ad esempio, crea due insiemi

>>> A=frozenset([2,4,8,10])
>>> B=set([1,3,5,7,9])

Ora unisci i due insiemi tramite l'operatore A|B dell'unione di insiemi

>>> C=A|B

Il risultato è un nuovo insieme C di tipo frozenset ossia immutabile.

>>>C
frozenset({1, 2, 3, 4, 5, 7, 8, 9, 10})

Quest'ultimo è un insieme di tipo frozenset

>>> type(C)
<class 'frozenset'>

Per verificare se due insiemi frozenset sono disgiunti o meno puoi utilizzare i metodi isdisjoint(), issubset(), issuperset().

Ad esempio, crea questi due insiemi frozenset

>>> A=frozenset([1,2,3,4,5])
>>> B=frozenset([2,3])

Digita A.isdisjoint(B) per verificare se sono insiemi disgiunti.

In questo caso non sono insiemi disgiunti.

>>> A.isdisjoint(B)
False

Un'altra caratteristica è che gli oggetti frozenset possono essere contenuti dentro un insieme modificabile.

Ad esempio, crea due insiemi immodificabili (frozenset) nelle variabili A e B

>>> A=frozenset([2,4,8,10])
>>> B=frozenset([1,3,5,7,9])

Poi crea un insieme modificabile (set) che ha come elementi gli insiemi A e B

>>> C=set([A,B])

In questo caso Python non va in errore.

L'insieme C contiene al suo interno i due insiemi frozenset

{frozenset({1, 3, 5, 7, 9}), frozenset({8, 2, 10, 4})}

In altre parole, un insieme set non può contenere altri insiemi set al suo interno ma può contenere degli insiemi frozenset.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Insiemi in Python

Le funzioni

I metodi