所以,這很有趣 - 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)'是一個特徵,這不是一個錯誤,並有一個原因就是這樣(上面的鏈接)。這是否有類似的解釋 - 還是僅僅是一種怪異?這是我的問題。 –