dictado de tipo python

El lenguaje Python es especìfico sobre lo que se puede usar como clave en un diccionario . En un diccionario de Python, todas las claves deben ser hash.

Si intenta utilizar un tipo de clave que no se puede modificar al agregar una clave a un diccionario, encontrará el " TypeError: tipo unhashable: " dictar " " error.

En esta guìa, hablamos sobre lo que significa este error y por qué se genera. Analizamos un ejemplo de este error para que pueda aprender a resolverlo en su còdigo.

TypeError: unhashable type: " dict "

Los diccionarios constan de dos partes: claves y valores. Las claves son los identificadores que están vinculados a un valor. Cuando hagas referencia a una clave, podrás recuperar el valor asociado con esa clave.

Solo los objetos hash pueden ser claves en un diccionario. Objetos inmutables como cadenas , enteros , tuples , y frozensets son hash, con algunas excepciones. Por lo tanto, los diccionarios no se pueden usar como clave en un diccionario.

Para agregar un elemento a un diccionario, debe especificar una clave hash válida. Por ejemplo, " nombre " es una clave válida, pero {" name & rdquo ;: " test " } no lo es.

Un escenario de ejemplo

Aquì, escribimos un programa que agrega todos los pasteles que se han vendido más de cinco veces en una panaderìa de un diccionario a otro.

Comience declarando una lista de pasteles que contiene diccionarios sobre cada pastel. También definimos un diccionario en el que podemos almacenar los pasteles que se han vendido más de cinco veces.

El 81% de los participantes afirmò que se sentìa más seguro sobre sus perspectivas laborales después de asistir a un bootcamp. Asigne a un bootcamp hoy mismo.

El graduado promedio de bootcamp pasò menos de seis meses en la transiciòn profesional, desde comenzar un bootcamp hasta encontrar su primer trabajo.

Nuestros " pasteles " La lista contiene tres diccionarios. Cada diccionario contiene dos claves y valores. Los nombres clave son " cake " y " vendido & rdquo ;.

< / a>

Ahora, escribimos un bucle for que revisa nuestra lista de pasteles y encuentra los que se han vendido más de cinco veces. Esos pasteles se agregarán al diccionario " sold_more_than_five ":

En nuestro bucle for, comparamos si el valor de "vendido" en cada diccionario es mayor que 5. Si es asì, ese elemento se agrega a nuestro diccionario "vendido_más_de_ cinco". Luego, un Se imprime un mensaje en la consola que informa al usuario que el pastel en particular se ha vendido más de cinco veces.

Una vez que nuestro ciclo se ha ejecutado, imprimimos t él " vendiò_más_de_ cinco " diccionario a la consola.

Ejecute nuestro còdigo para asegurarse de que nuestro programa funcione:

Nuestro còdigo devuelve un error.

La soluciòn

Nuestro còdigo no funciona porque estamos intentando crear una clave de diccionario usando otro diccionario.

El valor de " c " es igual a un diccionario de nuestros " pasteles " lista. Esto significa que cuando intentamos agregar un artìculo a " sold_more_than_five " diccionario, accidentalmente estamos tratando de agregar un diccionario como clave:

Cuando nuestro " if " la declaraciòn se ejecuta en el " Carrot Cake " cake, nuestro còdigo intenta ejecutar:

Esto no es válido porque estamos intentando agregar un diccionario como clave en un diccionario. Podemos resolver este problema usando c [" name "] como el nombre de nuestra clave de diccionario:

Ejecute nuestro còdigo con este còdigo revisado:

Nuestro còdigo se ejecuta correctamente. Ahora estamos usando el nombre de cada pastel como clave en lugar de como diccionario.

< / a>

Conclusiòn

El error " TypeError: unhashable type: " dict " " surge cuando intenta crear un elemento en un diccionario cuya clave es un Objeto. Solo los objetos inmutables como cadenas, tuplas y n√∫meros enteros se pueden usar como clave en un diccionario.

Para resolver este error, aseg√∫rese de usar solo objetos con hash al crear un elemento en un diccionario. ¬°Ahora estás listo para resolver este error com√∫n de Python como un desarrollador profesional!