ハッシュ テーブルは高パフォーマンスのマッピングであると想定されており、Python dict はハッシュ テーブルで実装されているため、高パフォーマンスでもあります。しかし、負の整数のハッシュ値を見ると、奇妙な結果に遭遇しました。
>>> for i in range(7):
... print hash(i-4)
...
-4
-3
-2
-2
0
1
2
しかし、これは明らかに辞書には影響しません:
>>> d = dict()
>>> d[-1] = 'foo'
>>> d[-2] = 'bar'
>>> d
{-2: 'bar', -1: 'foo'}
なぜこれが起こるのですか? また、辞書を使用しても影響を受けないのはなぜですか?