lista de tipos de Python sin hash

Los diccionarios de Python solo aceptan tipos de datos hash como clave en un diccionario. Una lista no es un tipo de datos hash. Si especifica una lista como clave en un diccionario, encontrará un " TypeError: tipo inhashable: " list " " error.

En esta guìa, hablamos sobre lo que significa este error y por qué lo ve en su còdigo. Veremos un ejemplo de este error para mostrarle còmo resolverlo.

TypeError: tipo inhashable: " list "

Los diccionarios tienen dos partes: claves y valores. Las claves son las etiquetas asociadas con un valor particular. Para acceder a un valor, debe hacer referencia al nombre de la clave de ese valor.

Si bien los valores pueden ser de cualquier tipo de datos, desde listas a cadenas , solo los objetos hash son aceptables como claves. Los objetos hash son objetos con un valor hash que no cambia con el tiempo. & Nbsp; Ejemplos de objetos hash son tuplas y cadenas.

Las listas no tienen un valor hash invariable. Sus valores hash pueden cambiar con el tiempo. Esto significa que no puede especificar una lista como clave de diccionario. & Nbsp;

Un escenario de ejemplo

Creemos un programa que cree una lista de estudiantes que tienen una calificaciòn promedio de más de 75. Esta lista contendrá registros de diccionario de cada estudiante y sus calificaciones. Para crear este diccionario, trabajaremos a partir de un diccionario con una lista de todos los estudiantes de una escuela y sus calificaciones.

Comencemos por definir una lista de estudiantes y un diccionario para nuestros mejores estudiantes:

Cada valor en el " estudiantes " list es un diccionario. Cada diccionario contiene dos claves: nombre y calificaciones. Hemos definido un diccionario llamado " top_students " que contendrá la informaciòn sobre nuestros mejores estudiantes.

El 81% de los participantes dijeron que se sentìan más seguros sobre sus perspectivas laborales después de asistir a un bootcamp. Asòciese a un bootcamp hoy.

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

Ahora que hemos definido esto diccionario, usamos un bucle for para filtrar los estudiantes cuyas calificaciones promedio son superiores a 75 y agregarlos a nuestro nuevo diccionario:

En cada iteraciòn del ciclo for, calculamos el promedio de todas las calificaciones que ha obtenido un estudiante. Hacemos esto dividiendo el total de todas las calificaciones por la cantidad de calificaciones que se han registrado.

A continuaciòn, verificamos si ese promedio es mayor que 75. Si es asì, creamos una nueva entrada en el diccionario top_students con el nombre de un estudiante y sus calificaciones.

Finalmente, imprimimos el diccionario top_students en la consola para ver a todos los estudiantes que tienen una calificaciòn promedio de más de 75:

Ejecute nuestro còdigo y vea qué sucede:

Nuestro còdigo no se ejecuta correctamente.

El Soluciòn

Nuestro còdigo funciona hasta que el intérprete llega a la lìnea 11. En esta lìnea, nuestro còdigo dice:

El error en nuestro còdigo se debe a que hemos intentado asignar una lista como una clave en un diccionario. Cuando nuestro còdigo analiza esta lìnea en la primera iteraciòn de nuestro bucle, nuestro còdigo intenta crear un diccionario con la siguiente clave y valor:

Este es un diccionario no válido. Nuestro còdigo intenta asignar una lista como clave que no funciona.

Para resolver este problema, usamos el nombre del estudiante como clave en el diccionario en lugar de la lista de calificaciones:

Hemos asignado la lista de calificaciones como un valor en lugar de como una clave. El nombre del alumno es la clave del diccionario. Ejecutemos nuestro còdigo:

Nuestro còdigo crea exitosamente un diccionario con informaciòn sobre los estudiantes con mejor desempe√±o. Se agregò al diccionario cualquier estudiante cuya calificaciòn promedio en sus √∫ltimas tres pruebas sea superior a 75.

Nuestro diccionario se divide de la siguiente manera:

  • Claves: Linda, Holly
  • Valores: [84, 82, 65], [72, 74, 81]

Debido a que ahora estamos asignando cadenas a nuestros nombres de clave, nuestro còdigo funciona.

Conclusiòn

El error " TypeError: unhashable type: " list " " aparece cuando intenta asignar una lista como clave en un diccionario. Para solucionar este error, aseg√∫rese de asignar solo un objeto hash, como un cadena o tupla, como clave para un diccionario.

¬°Ahora estás listo para resolver este error como un programador profesional!

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method