我正在编写一个包含 10 个遗愿 list 的简单哈希表。使用内置的 hash() 计算索引,然后对表大小取模。但是,当我尝试将该对象 append 到该索引处的存储桶列表时,它会 append 到每个存储桶列表。 我试过用不同的方式定义 add_HT 但我一直得到相同的结果。我做错了什么?
size = 10
HT = [ [] ] * size
def add_HT(data):
index = hash(data) % size
HT[index].append(data)
print HT
[[], [], [], [], [], [], [], [], [], []]
add_HT('hello')
[['hello'], ['hello'], ['hello'], ['hello'], ['hello'], ['hello'], ['hello'], ['hello'], ['hello'], ['hello']]
请您参考如下方法:
HT = [ [] ] * size 使 size 个指针指向同一个列表。 add_HT 不是这里的问题。您需要将 HT 定义为 [[] for i in xrange(size)]。
