我正在练习元组哈希.在那里,我正在研究Python 2.7.以下是代码:
num = int(raw_input())
num_list = [int(x) for x in raw_input().split()]
print(hash(tuple(num_list)))
Run Code Online (Sandbox Code Playgroud)
上面的代码导致了
>>> 2
>>> 1 2
>>> 3713081631934410656
Run Code Online (Sandbox Code Playgroud)
但在我使用Python 3.4的本地PC上,答案是
>>> 1299869600
Run Code Online (Sandbox Code Playgroud)
代码被接受但我无法找出导致不同结果的原因.这是针对不同版本的Python吗?
hash()在不同的操作系统、体系结构、Python 实现和 Python 版本上,同一对象可能会返回不同的值。
它被设计为仅在单个 Python 会话中使用,而不是跨会话或机器。因此,您永远不应该依赖hash()超出此范围的值。
如果您需要散列在各处产生相同的结果,请考虑校验和,例如: