Función hash() de Python
Funciones integradas de Python3
hash()Es una función integrada en Python que se utiliza para devolver el valor hash de un objeto.
El valor hash es un número entero que se utiliza para comparar objetos rápidamente. Las claves de los diccionarios y los elementos de los conjuntos deben ser hashables. Los objetos inmutables suelen ser hashables.
Definición del término: hash 意为"哈希",返回对象的哈希值。
Sintaxis básica y parámetros
Formato de sintaxis
hash(object)
Descripción de parámetros
- Parámetro object:
- Tipo: Cualquier objeto
- Descripción: El objeto cuyo valor hash se va a calcular.
Descripción de la función
- Valor de retorno: Devuelve el valor hash del objeto (entero).
- RequisitosEl objeto debe ser hashable (es decir, debe implementar el método __hash__).
Ejemplos
Ejemplo 1: Uso básico
Ejemplo
# Números
print(hash(1)) # Salida: 1
print(hash(3.14)) # Salida: 314159
print(hash(-100)) # Salida: -100
# Cadena
print(hash("hello")) # Salida: valor hash
print(hash("world")) # Salida: otro valor hash
# Tupla (hashable)
print(hash((1, 2, 3))) # Salida: valor hash
# Lista (no hashable)
# print(hash([1, 2, 3])) # lanzará TypeError
print(hash(1)) # Salida: 1
print(hash(3.14)) # Salida: 314159
print(hash(-100)) # Salida: -100
# Cadena
print(hash("hello")) # Salida: valor hash
print(hash("world")) # Salida: otro valor hash
# Tupla (hashable)
print(hash((1, 2, 3))) # Salida: valor hash
# Lista (no hashable)
# print(hash([1, 2, 3])) # lanzará TypeError
Resultado esperado:
Los objetos con el mismo valor tienen el mismo valor hash en todo momento.
Ejemplo 2: Uso en diccionarios y conjuntos
Ejemplo
# Las claves de un diccionario deben ser hashables
d = {"name": "Tom", "age": 20}
print(d["name"]) # Salida: Tom
# Los elementos de un conjunto deben ser hashables
s = {1, 2, 3, "hello"}
print(3 in s) # Salida: True
# Hash de una clase personalizada
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __hash__(self):
return hash((self.x, self.y))
p = Point(1, 2)
print(hash(p)) # Salida: valor hash
d = {"name": "Tom", "age": 20}
print(d["name"]) # Salida: Tom
# Los elementos de un conjunto deben ser hashables
s = {1, 2, 3, "hello"}
print(3 in s) # Salida: True
# Hash de una clase personalizada
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __hash__(self):
return hash((self.x, self.y))
p = Point(1, 2)
print(hash(p)) # Salida: valor hash
Resultado de ejecución:
El valor hash permite que los objetos se utilicen como claves de diccionario y elementos de conjunto.
hash()Es la base de las operaciones relacionadas con hash en Python.
Funciones integradas de Python3
Otras extensiones