lettura facile

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.




Se qualcosa non ti è chiaro, scrivi la tua domanda nei commenti.




FacebookTwitterLinkedinLinkedin