Volver a la página principal
miércoles 25 septiembre 2024
7

Cómo obtener el valor hash en Python con hash()

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).

¿Cómo funciona hash() en Python?

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.

Ejemplo de uso básico:

num = 42
print(hash(num))  # Devuelve el hash de un número entero

Con cadenas:

cadena = "hola"
print(hash(cadena))  # Devuelve el hash de una cadena

Con tuplas (inmutables):

tupla = (1, 2, 3)
print(hash(tupla))  # Devuelve el hash de una tupla

Objetos mutables no tienen hash

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'

Usos comunes de hash()

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

Ejemplos adicionales

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

Referencia oficial

Puedes obtener más detalles sobre la función hash() en la documentación oficial de Python.

Etiquetas:
python
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer