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