8.1 Tupla de set
A coleção frozenset é um análogo imutável do set. Ela oferece todas as funcionalidades de um conjunto, mas não permite alterar seus elementos após a criação. frozenset é útil em situações em que é necessário armazenar elementos únicos e garantir que o conjunto não será modificado.
Criação de frozenset
Para criar um frozenset, você pode usar a função frozenset(), passando para ela um objeto iterável (lista, tupla, string etc.).
Exemplos:
Criação de frozenset a partir de uma lista
# Criação de frozenset a partir de uma lista
fset1 = frozenset([1, 2, 3, 4])
print(fset1) # Saída: frozenset({1, 2, 3, 4})
Criação de frozenset a partir de uma string
# Criação de frozenset a partir de uma string
fset2 = frozenset("hello")
print(fset2) # Saída: frozenset({'h', 'e', 'l', 'o'})
Criação de frozenset vazio
# Criação de frozenset vazio
fset3 = frozenset()
print(fset3) # Saída: frozenset()
8.2 Principais métodos frozenset
frozenset suporta a maioria dos métodos disponíveis para conjuntos mutáveis (set), mas como ele é imutável, métodos que alteram o conjunto não estão disponíveis.
Exemplos:
União de conjuntos (union)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# União de conjuntos (union)
print(fset1 | fset2) # Saída: frozenset({1, 2, 3, 4, 5, 6})
print(fset1.union(fset2)) # Saída: frozenset({1, 2, 3, 4, 5, 6})
Interseção de conjuntos (intersection)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Interseção de conjuntos (intersection)
print(fset1 & fset2) # Saída: frozenset({3, 4})
print(fset1.intersection(fset2)) # Saída: frozenset({3, 4})
Diferença de conjuntos (difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Diferença de conjuntos (difference)
print(fset1 - fset2) # Saída: frozenset({1, 2})
print(fset1.difference(fset2)) # Saída: frozenset({1, 2})
Diferença simétrica (symmetric difference)
fset1 = frozenset([1, 2, 3, 4])
fset2 = frozenset([3, 4, 5, 6])
# Diferença simétrica (symmetric difference)
print(fset1 ^ fset2) # Saída: frozenset({1, 2, 5, 6})
print(fset1.symmetric_difference(fset2)) # Saída: frozenset({1, 2, 5, 6})
8.3 Aplicação de frozenset
frozenset é útil nas seguintes situações:
Uso como chave em dicionários:
Como frozenset é imutável, ele pode ser usado como chave em dicionários.
fset1 = frozenset([1, 2, 3])
fset2 = frozenset([3, 4, 5])
d = {fset1: "primeiro", fset2: "segundo"}
print(d) # Saída: {frozenset({1, 2, 3}): 'primeiro', frozenset({3, 4, 5}): 'segundo'}
Armazenamento de conjuntos imutáveis:
Se for necessário criar um conjunto de elementos únicos que não será modificado, frozenset é uma ótima escolha.
Segurança dos dados:
Usar frozenset garante que os dados não serão alterados acidentalmente durante a execução do programa.
GO TO FULL VERSION