Crear un conjunto de conjuntos en Python

Vaibhav Vaibhav 10 octubre 2023
Crear un conjunto de conjuntos en Python

Como programador, uno debe tener un buen conocimiento de las estructuras de datos. Hay muchas estructuras de datos en informática, de las cuales los arrays y conjuntos son muy fáciles de entender. Dado que este artículo no trata sobre estructuras de datos, no profundizaremos en ellas, sino que hablaremos específicamente de Conjuntos.

En Python, podemos crear un array de matrices o una lista de listas. Sin embargo, esto no es cierto para los conjuntos. No podemos crear un conjunto de conjuntos en Python. ¿No crees eso? Prueba el siguiente código.

print({{1, 2}, {2, 3}})

El código anterior arrojará un error, que es el siguiente.

Traceback (most recent call last):
  File "<string>", line 1, in <module>
TypeError: unhashable type: 'set'

Dado que los conjuntos son mutables, no se pueden aplicar hash. Dado que un conjunto necesita valores hash para mantener la unicidad y rechazar valores duplicados, no podemos crear un conjunto de conjuntos de esta manera. En cambio, tenemos que seguir algunos enfoques diferentes.

Mutable significa que el contenido de la estructura de datos se puede alterar, mientras que inmutable significa que el contenido de la estructura de datos no se puede alterar. Algunos ejemplos de estructuras de datos mutables son listas, conjuntos y diccionarios. Y, algunos ejemplos de estructuras de datos inmutables son cadenas, frozenset y tuplas.

Hash significa que la estructura de datos se puede representar como una cadena única dentro de la memoria, mientras que unhashable significa que la estructura de datos no se puede representar como una cadena única dentro de la memoria.

Crear un conjunto de conjuntos usando frozenset en Python

frozenset es un tipo de conjunto preconstruido en Python. Un frozenset y un set realizan la misma función: almacenar valores únicos y rechazar los valores duplicados que se les agregan. Sin embargo, un frozenset es inmutable y se puede combinar, mientras que un conjunto es mutable y no se puede modificar. Dado que un frozenset es inmutable, puede usarse como una clave dentro de un diccionario y almacenarse dentro de un set, porque un set solo puede almacenar valores inmutables. Entendamos esto mejor con algo de código Python.

a = set([frozenset([1, 2]), frozenset([2, 3]), frozenset([3, 4])])
print(a)

El resultado del código anterior es el siguiente.

{frozenset({3, 4}), frozenset({2, 3}), frozenset({1, 2})}

Para obtener más información sobre frozenset, consulte la documentación oficial de Python aquí.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Artículo relacionado - Python Set