Tipo de infalible dict '

Tipo de infalible dict '
En Python, un diccionario se refiere a una colección desordenada de pares de valores clave. Cada clave se asigna a un valor específico dentro del diccionario. La clave de un diccionario es única y se utiliza para acceder al valor correspondiente.

Sin embargo, una clave de un diccionario de Python debe ser Hashable. Un objeto hashable significa que el objeto es inmutable y puede producir un valor hash único.

Por lo tanto, el uso de un objeto inflable como clave de un diccionario dará como resultado un error.

Discutamos cómo podemos resolver este error.

Error de ejemplo

Considere el siguiente código que ilustra cómo ocurre este tipo de error.

desarrolladores = "juegos": 200, "base de datos": 100, "full_stack": 500
>>> empleados = desarrolladores: 800
Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
TypeError: Tipo de infalible: 'dict'

En el ejemplo anterior, comenzamos definiendo un diccionario que contiene el tipo de desarrollador y el número total.

Creamos un diccionario de empleados que toma el diccionario del desarrollador como la clave en la segunda parte.

Dado que un diccionario está inflable, Python no puede usarlo como clave de diccionario.

Python verifique si el objeto es hashable

Se produce la pregunta, ¿cómo sé si un objeto es hashable o no?? En Python, puede usar la función hash para determinar si un objeto es hashable.

Un ejemplo es como se muestra:

>>> hash ("clave")
-4481039435095198476

Si un objeto es hashable, debe devolver un hash único como se muestra en el ejemplo anterior. Dado que una cadena es hashable, devuelve un hash único.

Si intenta la misma operación en un diccionario o una lista, recibirá un error como se muestra:

>>> hash ([1,2,3,4,5])
Rastreo (llamadas recientes más última):
Archivo "", línea 1, en
TypeError: Tipo inflable: 'Lista'

No es hashable ya que una lista es mutable, como se muestra en el error anterior.

SEX: TypeError: Tipo de infalible: 'DICT'

Si desea usar un diccionario como clave para otro diccionario, puede hacerlo primero convirtiéndolo en una tupla.

Una tupla es hashable como se muestra en el siguiente ejemplo:

>>> hash ((1,2,3,4,5))
-5659871693760987716

Resolvamos nuestro primer error convirtiendo el diccionario del desarrollador en una tupla:

>>> desarrolladores = tuple (desarrolladores)
>>> Imprimir (desarrolladores)
('juegos', 'base de datos', 'full_stack')

Una vez que lo convertimos en una tupla, podemos usarla como clave en el diccionario como se muestra:

>>> empleados = desarrolladores: 800
>>> imprimir (empleados)
('juegos', 'base de datos', 'full_stack'): 800

Arreglar 2

Otra solución es usar el diccionario como valor. Por ejemplo, podemos usar el diccionario del desarrollador como valor para el diccionario de empleados.

Tome la ilustración del código a continuación:

>>> desarrolladores = "juegos": 200, "base de datos": 100, "full_stack": 500
>>> empleados = "empleados": desarrolladores
>>> imprimir (empleados)
'Empleados': 'juegos': 200, 'base de datos': 100, 'full_stack': 500

En este caso, el código no devuelve un error, ya que estamos utilizando el diccionario como valor para un nuevo diccionario.

Usando un bucle para

Otro método no convencional está utilizando un bucle para. Puede iterar sobre cada clave y valorar un par de un diccionario y agregarlos a un nuevo diccionario.

Considere el ejemplo a continuación:

>>> desarrolladores = "juegos": 200, "base de datos": 100, "full_stack": 500
>>> Para K, V en desarrolladores.elementos():
... empleados [k] = v

>>> empleados
'Empleados': 'juegos': 200, 'base de datos': 100, 'full_stack': 500, 'juegos': 200, 'base de datos': 100, 'full_stack: 500

En este caso, utilizamos un bucle for para iterar sobre los elementos del diccionario de los desarrolladores y los agregamos al dict de los empleados.

Clausura

Este artículo exploró tres métodos para corregir el error "TypeError: UnfaShable Type: 'Dict'" en Python.