【发布时间】:2021-10-01 17:43:54
【问题描述】:
CPython2.7中如何计算某个特定字符串的hash值?
例如,这段代码:
print hash('abcde' * 1000)
即使我重新启动 Python 进程并重试(我做了很多次),也会返回相同的值。
所以,这个计算中似乎没有使用字符串的id()(内存地址),对吧?那怎么办?
【问题讨论】:
-
“即使在我重新启动 Python 进程并重试之后返回相同的值” - 不能保证,并且在 Python 3 上通常不是这样。“似乎字符串的 id()(内存地址)不用于此计算”-当然不是。否则,我们将没有
a == b暗示hash(a) == hash(b)的不变量。 -
我认为您需要运行
help(hash)和help(id)才能了解两者之间的区别,因为它们不一样... -
也许这个帖子会有所启发? stackoverflow.com/questions/6008026/…
-
@BorrajaX,谢谢,我去看看