问题描述
hash_table = list([0 for i in range(8)])
def get_key(data):
return hash(data)
def hash_function(key):
return key % 8
def save_data(data,value):
hash_address = hash_function(get_key(data))
hash_table[hash_address] = value
def read_data(data):
hash_address = hash_function(get_key(data))
return hash_table[hash_address]
将一些数据放入哈希表后,我发现了一些奇怪的东西。
save_data('Andy','01055553333')
save_data('Dave','01044443333')
save_data('Trump','01022223333')
read_data('Dave')
以上代码是将数据和值放入哈希表后读取Dave的值。
这是我的结果。
'01022223333'
但不知何故,结果是特朗普的价值。所以,我检查了整个哈希表,但找不到 Dave 的值。
hash_table
[0,'01055553333','01022223333',0]
我认为这是由哈希表的大小引起的。但是将大小从 8 增加到 100 后,仍然不包括 Dave 的值。
或者,这个问题是由哈希冲突引起的吗?
我想知道为什么会这样,以及如何解决这个问题。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)