所以,这很有趣 - Python的hash
臭名昭着地返回True
hash(-1) == hash(-2)
,as discussed elsewhere,但这又如何呢?hash((-2,2))== hash((2,-2))返回True(Python)
>>> hash((-2,2)) == hash((2,-2))
True
这是一个功能?
其他一些快速的实验:
>>>(-2,2) == (2,-2)
False
>>>hash((-1,)) == hash((-2,))
True
>>>hash((-1,-2)) == hash((-2,-1))
True
>>>hash((-2.01,2.01)) == hash((2.01,-2.01))
False
>>>hash((-1,1)) == hash((1,-1))
False
那会是什么样的功能?我倾向于说它显然不是一个功能,因为你希望你的散列函数不具有这些属性。你的问题是什么? –
顺便说一句,你可能打算编写'(-1,)',因为额外的一对parens是多余的,否则 –
好吧,'hash(-1)== hash(-2)'是一个特征,这不是一个错误,并有一个原因就是这样(上面的链接)。这是否有类似的解释 - 还是仅仅是一种怪异?这是我的问题。 –