8.1 set-tuple
La collezione frozenset è un analogo immutabile di set. Fornisce tutte le funzionalità di un insieme, ma non permette di modificarne gli elementi dopo la creazione. frozenset è utile in situazioni dove è necessario memorizzare elementi unici e garantire che l'insieme non venga modificato.
Creazione di un frozenset
Per creare un frozenset si può utilizzare la funzione frozenset(), passando un oggetto iterabile (lista, tupla, stringa, ecc.).
Esempi:
Creazione di un frozenset da una lista
# Creazione di frozenset da una lista
fset1 = frozenset([1, 2, 3, 4])
print(fset1) # Output: frozenset({1, 2, 3, 4})
Creazione di un frozenset da una stringa
# Creazione di frozenset da una stringa
fset2 = frozenset("hello")
print(fset2) # Output: frozenset({'h', 'e', 'l', 'o'})
Creazione di un frozenset vuoto
# Creazione di frozenset vuoto
fset3 = frozenset()
print(fset3) # Output: frozenset()
8.2 Metodi principali di frozenset
frozenset supporta la maggior parte dei metodi disponibili per gli insiemi mutabili (set), ma poiché è immutabile, i metodi che modificano l'insieme non sono disponibili.
Esempi:
Unione degli insiemi (union)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Unione degli insiemi (union)
print(fset1 | fset2) # Output: frozenset({1, 2, 3, 4, 5, 6})
print(fset1.union(fset2)) # Output: frozenset({1, 2, 3, 4, 5, 6})
Intersezione degli insiemi (intersection)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Intersezione degli insiemi (intersection)
print(fset1 & fset2) # Output: frozenset({3, 4})
print(fset1.intersection(fset2)) # Output: frozenset({3, 4})
Differenza degli insiemi (difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Differenza degli insiemi (difference)
print(fset1 - fset2) # Output: frozenset({1, 2})
print(fset1.difference(fset2)) # Output: frozenset({1, 2})
Differenza simmetrica (symmetric difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Differenza simmetrica (symmetric difference)
print(fset1 ^ fset2) # Output: frozenset({1, 2, 5, 6})
print(fset1.symmetric_difference(fset2)) # Output: frozenset({1, 2, 5, 6})
8.3 Applicazione di frozenset
frozenset è utile nei seguenti casi:
Uso come chiave nei dizionari:
Poiché frozenset è immutabile, può essere utilizzato come chiave nei dizionari.
fset1 = frozenset([1, 2, 3])
fset2 = frozenset([3, 4, 5])
d = {fset1: "primo", fset2: "secondo"}
print(d) # Output: {frozenset({1, 2, 3}): 'primo', frozenset({3, 4, 5}): 'secondo'}
Memorizzazione di insiemi immutabili:
Se è necessario creare un insieme di elementi unici che non sarà modificato successivamente, frozenset — è un'ottima scelta.
Sicurezza dei dati:
L'uso di frozenset garantisce che i dati non vengano modificati accidentalmente nel corso dell'esecuzione del programma.
GO TO FULL VERSION