Crie um conjunto de conjuntos em Python
Como um programador, deve-se ter um bom conhecimento de estruturas de dados. Existem muitas estruturas de dados na ciência da computação, cujas matrizes e conjuntos são muito fáceis de entender. Uma vez que este artigo não é sobre estruturas de dados, não vamos nos aprofundar nelas, ao invés disso, falaremos especificamente sobre Conjuntos.
Em Python, podemos criar um array de arrays ou uma lista de listas. No entanto, isso não é verdade para conjuntos. Não podemos criar um conjunto de conjuntos em Python. Você não acredita nisso? Experimente o seguinte código.
print({{1, 2}, {2, 3}})
O código acima irá gerar um erro, que é o seguinte.
Traceback (most recent call last):
File "<string>", line 1, in <module>
TypeError: unhashable type: 'set'
Uma vez que os conjuntos são mutáveis, eles não podem ser processados. Uma vez que um conjunto precisa de valores hashable para manter a exclusividade e rejeitar valores duplicados, não podemos criar um conjunto de conjuntos dessa maneira. Em vez disso, temos que seguir algumas abordagens diferentes.
Mutável significa que o conteúdo da estrutura de dados pode ser alterado, enquanto imutável significa que o conteúdo da estrutura de dados não pode ser alterado. Alguns exemplos de estruturas de dados mutáveis são listas
, conjuntos
e dicionários
. E alguns exemplos de estruturas de dados imutáveis são strings
, frozenset
e tuplas
.
Hashable significa que a estrutura de dados pode ser representada como uma string única dentro da memória, enquanto não hashable significa que a estrutura de dados não pode ser representada como uma string única dentro da memória.
Criar conjunto de conjuntos usando frozenset
em Python
frozenset
é um tipo de conjunto pré-construído em Python. Um frozenset
e um set
executam a mesma função: armazenar valores únicos e rejeitar valores duplicados adicionados a eles. No entanto, um frozenset
é imutável e hashable, enquanto um set
é mutável e inalterável. Visto que um frozenset
é imutável, ele pode ser usado como uma chave dentro de um dicionário e armazenado dentro de um set
, porque um set
só pode armazenar valores imutáveis. Vamos entender isso melhor com algum código Python.
a = set([frozenset([1, 2]), frozenset([2, 3]), frozenset([3, 4])])
print(a)
A saída do código acima é a seguinte.
{frozenset({3, 4}), frozenset({2, 3}), frozenset({1, 2})}
Para aprender mais sobre frozenset
, consulte a documentação oficial do Python aqui.