print - Matrices hash en Python
python print end='' r (3)
Python no le permite utilizar datos mutables como claves en los diccionarios, ya que los cambios posteriores a la inserción harían que el objeto no se pueda encontrar. Puedes usar tuplas como llaves.
¿Es posible hacer lists
hash?
Por ejemplo, sé que hashes de tuplas son posibles:
>>> hash((1,2,3,4,5,6))
-319527650
¿Pero es posible hacer una list
?
>>> hash([1,2,3,4,5,6])
hash_value
Solución posible:
Si realmente necesita usar una lista como clave de diccionario, primero intente convertirla en una cadena.
my_list = str(my_list)
Solo inténtalo:
>>> hash((1,2,3))
2528502973977326415
>>> hash([1,2,3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: ''list''
>>> hash(frozenset((1,2,3)))
-7699079583225461316
>>> hash(set((1,2,3)))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: ''set''
De modo que puede obtener hash
de tuple
y frozenset
ya que son inmutables, y no puede hacerlo por list
y set
porque son mutables.