Python TypeError: Unhashable Tipo: Lista
-
el
TypeError: unhashable type: 'list'en Python - Función hash en Python
-
Solucione el
Error de tipo: tipo no modificable: 'lista'en Python
Este artículo discutirá el TypeError: unhashable type: 'list' y cómo solucionarlo en Python.
el TypeError: unhashable type: 'list' en Python
Este error ocurre cuando pasa los objetos que no se pueden modificar como una lista como una clave para el diccionario de Python o encuentra el valor hash de una función.
Los diccionarios son una estructura de datos en Python que funciona en pares clave-valor, cada clave tiene un valor en su contra, y para acceder a los valores de los valores, necesitará las claves como índices de matriz.
Sintaxis de un diccionario:
dic = {"key": "Values"}
Los objetos hashable son aquellos cuyo valor no cambia con el tiempo pero siguen siendo los mismos tuples y strings son tipos de objetos hashable.
Código:
# creating a dictionary
dic = {
# list as a key --> Error because lists are immutable
["a", "b"]: [1, 2]
}
print(dic)
Producción :
TypeError: unhashable type: 'list'
Hemos usado una lista ["a","b"] como clave, pero el compilador ha arrojado un TypeError: unhashable type: 'list'.
Busquemos manualmente el valor hash de la lista.
Código:
lst = ["a", "b"]
hash_value = hash(lst)
print(hash_value)
Producción :
TypeError: unhashable type: 'list'
La función hash() se usa para encontrar el valor hash de un objeto dado, pero el objeto debe ser inmutable como cadena, tupla, etc.
Función hash en Python
La función hash() es una técnica de encriptación que encripta el objeto inmutable y le asigna un valor único, conocido como valor hash del objeto. No importa el tamaño de los datos, proporciona el mismo tamaño de valor único.
Código:
string_val = "String Value"
tuple_val = (1, 2, 3, 4, 5)
msg = """Hey there!
Welcome to DelfStack"""
print("Hash of a string object\t\t", hash(string_val))
print("Hash of a tuple object\t\t", hash(tuple_val))
print("Hash of a string message\t", hash(tuple_val))
Producción :
Hash of a string object -74188595
Hash of a tuple object -1883319094
Hash of a string message -1883319094
Los valores hash son del mismo tamaño y únicos para cada valor.
Solucione el Error de tipo: tipo no modificable: 'lista' en Python
Para corregir TypeError en Python, debe usar objetos inmutables como claves de diccionarios y como argumentos para la función hash(). Observe en el código anterior que la función hash() funciona perfectamente con objetos mutables como tuple y string.
Veamos cómo podemos arreglar el TypeError: unhashable type: 'list' en los diccionarios.
Código:
# creating a dictionary
dic = {
# string as key
"a": [1, 2]
}
print(dic)
Producción :
{'a': [1, 2]}
Esta vez proporcionamos una cadena "a" como clave, con la que está bien trabajar porque las cadenas son mutables.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar NameError: la variable no está definida en Python
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python
Artículo relacionado - Python TypeError
- Python TypeError: falta 1 argumento posicional requerido
- Resuelva el TypeError: no todos los argumentos se convirtieron durante el formato de cadena en Python
- Resuelva el TypeError: se requiere un número entero en Python
- Solucione el error de tipo de Python: los índices de lista deben ser números enteros, no una lista
- TypeError: debe ser un número real, no STR
