Python hash() 函数
hash() 是 Python 中用于返回对象哈希值的内置函数。
哈希值是一个整数,用于快速比较对象。字典的键和集合的元素都要求是可哈希的(hashable)。不可变对象通常是可哈希的。
单词释义: hash 意为"哈希",返回对象的哈希值。
基本语法与参数
语法格式
hash(object)
参数说明
- 参数 object:
- 类型: 任意对象
- 描述: 要计算哈希值的对象。
函数说明
- 返回值: 返回对象的哈希值(整数)。
- 要求: 对象必须是可哈希的(即实现了 __hash__ 方法)。
实例
示例 1:基础用法
实例
# 数字
print(hash(1)) # 输出: 1
print(hash(3.14)) # 输出: 314159
print(hash(-100)) # 输出: -100
# 字符串
print(hash("hello")) # 输出: 哈希值
print(hash("world")) # 输出: 另一个哈希值
# 元组(可哈希)
print(hash((1, 2, 3))) # 输出: 哈希值
# 列表(不可哈希)
# print(hash([1, 2, 3])) # 会抛出 TypeError
print(hash(1)) # 输出: 1
print(hash(3.14)) # 输出: 314159
print(hash(-100)) # 输出: -100
# 字符串
print(hash("hello")) # 输出: 哈希值
print(hash("world")) # 输出: 另一个哈希值
# 元组(可哈希)
print(hash((1, 2, 3))) # 输出: 哈希值
# 列表(不可哈希)
# print(hash([1, 2, 3])) # 会抛出 TypeError
运行结果预期:
同值对象在任何时候都有相同的哈希值。
示例 2:在字典和集合中使用
实例
# 字典的键必须是可哈希的
d = {"name": "Tom", "age": 20}
print(d["name"]) # 输出: Tom
# 集合元素必须是可哈希的
s = {1, 2, 3, "hello"}
print(3 in s) # 输出: True
# 自定义类的哈希
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)) # 输出: 哈希值
d = {"name": "Tom", "age": 20}
print(d["name"]) # 输出: Tom
# 集合元素必须是可哈希的
s = {1, 2, 3, "hello"}
print(3 in s) # 输出: True
# 自定义类的哈希
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)) # 输出: 哈希值
运行结果:
哈希值使对象可以用作字典键和集合元素。
hash() 是 Python 中哈希相关操作的基础。
Python3 内置函数
点我分享笔记