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