我对字典和哈希表有些困惑,希望能够澄清一下。假设我有当前的字典以及当前 Python 运行的哈希值输出。
Dict = dict()
print(hash('a'))
print(hash('b'))
print(hash('c'))
Dict['a'] = 1
Dict['b'] = 2
Dict['c'] = 3
print(Dict)
输出了
1714333803
1519074822
1245896149
{'a': 1, 'c': 3, 'b': 2}
据我所知,哈希表就是一个数组,其中哈希是哈希表的索引。例如,'a' 的哈希值为 1714333803,因此我的哈希表索引 1714333803 具有值 'a'。所以我很困惑哈希表有多少个索引,哈希函数如何产生结果?它是否使用模数并具有固定的索引范围?因为给定的字典输出为
{'a':1, 'c':3, 'b':2}
,但是可以假设即使输出这个,字典实际上也只是至少包含1714333803个索引的数组,因为那似乎过于浪费空间,仅用来容纳3个元素,并且无值的索引中有什么,在哈希表中呢?