La función hash()
en Python se utiliza para obtener el valor hash de un objeto, como números, cadenas y otros objetos inmutables. El valor hash es un número entero que representa una "huella digital" única del objeto, lo que permite su uso en estructuras de datos como diccionarios y conjuntos (que requieren elementos con valores hash únicos).
La función hash()
toma un único argumento, que debe ser un objeto inmutable (como números, cadenas, tuplas que contienen solo objetos inmutables, etc.) y devuelve su valor hash, un número entero que es utilizado para comparar y almacenar objetos en estructuras de datos hash, como diccionarios y conjuntos.
num = 42
print(hash(num)) # Devuelve el hash de un número entero
cadena = "hola"
print(hash(cadena)) # Devuelve el hash de una cadena
tupla = (1, 2, 3)
print(hash(tupla)) # Devuelve el hash de una tupla
Objetos mutables como listas y diccionarios no pueden ser hasheados, ya que su contenido puede cambiar, lo que rompería la consistencia del valor hash.
lista = [1, 2, 3]
print(hash(lista)) # Lanza un error: TypeError: unhashable type: 'list'
1. Claves en diccionarios: Los valores hash permiten que las claves en los diccionarios se comparen y accedan de manera eficiente.
diccionario = {1: "uno", "clave": "valor"}
print(hash(1)) # Hash de un número entero
print(hash("clave")) # Hash de una cadena utilizada como clave
2. Elementos en conjuntos: Los conjuntos en Python solo pueden contener elementos hasheables.
conjunto = {1, "cadena", (1, 2, 3)}
print(conjunto)
3. Comparación rápida de objetos: Los valores hash se usan para comparar rápidamente si dos objetos son iguales o no.
a = "texto"
b = "texto"
print(hash(a) == hash(b)) # True, ambos tienen el mismo valor hash
1. Hashear una cadena larga:
texto_largo = "Este es un ejemplo de un texto largo."
print(hash(texto_largo)) # Devuelve el hash del texto
2. Hasheando tuplas:
tupla = (10, 20, 30)
print(hash(tupla)) # Devuelve un valor hash basado en los elementos de la tupla
3. Valores hash en números de punto flotante:
num = 3.14159
print(hash(num)) # Devuelve el hash de un número flotante
Puedes obtener más detalles sobre la función hash()
en la documentación oficial de Python.
Jorge García
Fullstack developer