我正在编写一个包含 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)]
。
我是一名优秀的程序员,十分优秀!