Cómo usar objetos Frozenset en Python

Cómo usar objetos Frozenset en Python

Este artículo cubrirá una guía sobre el uso de la función "Frozenset" en Python que devuelve un nuevo objeto Python tipo Frozenset. Estos objetos son similares a los objetos establecidos disponibles en Python con algunas diferencias clave. Todas las muestras de código en este artículo se prueban con Python 3.9.5 en Ubuntu 21.04.

Acerca de Frozensets

El Función Frozenset Toma un argumento de un objeto Python de tipo iterable y devuelve un nuevo objeto Python de tipo Frozenset. Un objeto tipo Frozenset es un objeto Python de hashable e inmutable cuyos elementos están congelados o no cambios a lo largo de su vida. En contraste con un objeto Python de tipo conjunto cuyos elementos se pueden cambiar en cualquier momento, todos los elementos en un Frozenset permanecen constantes. El uso de Frozensets se puede entender mejor a través de ejemplos. Algunos de ellos se explican a continuación.

Creando un nuevo objeto Frozenset

Para obtener un nuevo Objeto tipo Frozenset, Simplemente suministre cualquier tipo iterable como argumento opcional a la función Frozenset. Aquí hay una muestra de código:

l = [1, 2, 3, 4]
fset = Frozenset (L)
Imprimir (FSET)
Imprimir (tipo (FSET)))

La primera declaración en el código define una nueva lista que simplemente se llama "L". A continuación, un nuevo Frozenset El objeto se crea llamando a la función Frozenset y suministrando la lista como argumento. Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

Frozenset (1, 2, 3, 4)

Como puede ver en la salida, FSET es un Frozenset Tipo de objeto y usa la sintaxis de los aparatos ortopédicos utilizados por conjuntos también en Python. Frozensets contienen elementos únicos solo como duplicados no están permitidos, nuevamente muy similares a los objetos de tipo Python Set. Cada Frozenset Type Object es un conjunto de python, pero viceversa no es cierto ya que los elementos establecidos se pueden cambiar llamando a algunos métodos. Tenga en cuenta que puede crear un vacío Frozenset llamando al Frozenset función sin ningún argumento.

No puede modificar un Frozenset una vez creado

Como se dijo anteriormente, un Frozenset El tipo de objeto tiene elementos que no cambian durante su vida. Si bien puede usar métodos disponibles para conjuntos de pitón con objetos de tipo Frozenset, se lanza un error si intenta usar un método que cambie el original Frozenset oponerse a sí mismo. Aquí hay un ejemplo:

l = [1, 2, 3, 4]
new_set = set (l)
nuevo set.eliminar (1)
imprimir (new_set)
fset = Frozenset (L)
fSET.eliminar (1)

En la muestra de código anterior, hay dos declaraciones en las que "eliminarSe llama a los objetos de tipo de conjunto de establecimiento. Mientras que un elemento se elimina con éxito de "nuevo set", Se lanza un error cuando se llama el método de eliminación"fSET". Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

2, 3, 4
Rastreo (llamadas recientes más última):
Archivo "principal.py ", línea 9, en
fSET.eliminar (1)
AttributeRor: el objeto 'Frozenset' no tiene ningún atributo 'eliminar'

Otros métodos similares como "agregar", "pop", "claro", "descartar", y así sucesivamente, no funcionará con forzensets.

Métodos que funcionan con Frozensets

Todos los métodos de conjunto de Python que no modifican los elementos de un conjunto de trabajo con Frozenset Tipo de objetos. Por lo tanto, puede comparar dos Frozensets para igualidades o desigualdades, iterar / recorrerlos, obtener elementos comunes o únicos entre dos Frozensets, y así sucesivamente. A continuación se muestra un ejemplo que muestra algunos de los métodos que funcionan con Frozensets.

fset1 = Frozenset ([1, 2, 3, 4])
fset2 = Frozenset ([3, 4, 5, 6])
Imprimir (FSET1.intersección (fset2))
Imprimir (FSET1.Unión (fset2))
Imprimir (FSET1.diferencia (fset2))
Imprimir (LEN (FSET1))
Imprimir (LEN (FSET2))

El código se explica por sí mismo. Algunos métodos que no cambian los valores del original Frozensets han sido llamados. Estos métodos se han utilizado principalmente para comparar elementos de dos diferentes Frozensets. Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

Frozenset (3, 4)
Frozenset (1, 2, 3, 4, 5, 6)
Frozenset (1, 2)
4
4

Algunos de los otros métodos que funcionan con conjuntos congelados son: "issubset", "issuperset", "symminic_diferference", "copia", etc. Operadores de igualdad como ">", "=" y "<=” also work with frozenset type objects.

Los frozensets se pueden convertir a otros tipos iterables

Puedes convertir Frozenset Escriba objetos a otros iterables llamando a su constructor principal. La muestra de código a continuación muestra la conversión de Frozenset Escriba objetos para enumerar, tue y establecer objetos de tipo.

fset = Frozenset ([1, 2, 3, 4])
Imprimir (Lista (FSET))
Imprimir (Tuple (FSET))
print (set (fset))

Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

[1, 2, 3, 4]
(1, 2, 3, 4)
1, 2, 3, 4

Casos de uso de Frozenset

Como Frozenset Los objetos no son más que objetos de pitón de tipo inquieto / inmutable, es posible que se pregunte sobre su utilidad, ya que siempre se pueden usar en su lugar. El caso de uso más obvio de Frozensets es para declarar objetos de tipo establecido con elementos únicos sin riesgo de cambiarlos accidentalmente más adelante en el código. Frozenset Los objetos de tipo se pueden usar como claves de diccionario, mientras que los conjuntos no se pueden usar para el mismo propósito. Dado que los frozensets son hashables, se pueden usar dentro de los conjuntos, mientras que los conjuntos no se pueden insertar en otro conjunto. Eche un vistazo al siguiente código:

fset = Frozenset (4, 5)
s = 1, 2, fset
impresión (s)
S = 1, 2, 4, 5

En la segunda declaración, un Frozenset se ha agregado a un set durante la creación. En la última declaración, se usa un objeto de tipo conjunto dentro de otro conjunto. Después de ejecutar la muestra de código anterior, debe obtener la siguiente salida:

Frozenset (4, 5), 1, 2
Rastreo (llamadas recientes más última):
Archivo "principal.py ", línea 27, en
S = 1, 2, 4, 5
TypeError: Tipo de inflable: 'set'

Como puede ver en la salida, forzensets se puede agregar a otros conjuntos. Por otro lado, agregar un set a otro conjunto arroja un error ya que los conjuntos aceptan solo elementos de tipo hashable.

Conclusión

Frozensets proporcionar una forma de crear conjuntos inmutables. Aceptan solo elementos únicos y son objetos de tipo hashable para que puedan usarse dentro de otros objetos de Python que solo aceptan objetos hashables como sus hijos.