Red de conocimiento informático - Material del sitio web - ¿Por qué no puedes cambiar el valor clave de un diccionario en Python?

¿Por qué no puedes cambiar el valor clave de un diccionario en Python?

Para responder a esta pregunta, primero debemos entender un concepto:

Hash (Hash)

Hash, generalmente traducido como "hash" o transliterado directamente como "hash", se elabora mediante hash El algoritmo hash convierte una entrada de longitud arbitraria (también llamada preimagen) en una salida de longitud fija, que es un valor hash. Esta transformación es un mapeo comprimido, es decir, el espacio de los valores hash suele ser mucho más pequeño que el espacio de las entradas, y diferentes entradas pueden generar la misma salida, por lo que es imposible determinar de forma única el valor de entrada a partir del hash. valor. En pocas palabras, es la función de comprimir un mensaje de longitud arbitraria en un resumen de mensaje de longitud fija.

Todas las funciones hash tienen la siguiente característica básica: si dos valores hash son diferentes (según la misma función), entonces la entrada original de los dos valores hash también es diferente. Esta propiedad es el resultado de la naturaleza determinista de las funciones hash. Por otro lado, la entrada y salida de una función hash no están en correspondencia uno a uno. Si dos hashes son iguales, es muy probable que los dos valores de entrada sean iguales, pero no hay certeza absoluta de que sean iguales. Ingrese algunos datos para calcular el valor hash, luego cambie parcialmente el valor de entrada. Ofuscar funciones hash puede producir valores hash completamente diferentes.

Volviendo al tema de la clave del diccionario, la clave del dict de Python debe ser única, por lo que debe ser un valor hash para garantizar la unicidad de la dirección de memoria. En Python, las cadenas, los números y las tuplas son objetos y hashes inmutables.