附加到子列表附加到每个子列表

xst*_*xst 1 python list append

我正在编写一个包含10个桶列表的简单哈希表.索引使用内置计算hash(),然后以表格大小为模.但是,当我尝试将对象附加到该索引处的存储桶列表时,它会被附加到每个存储桶列表中.我尝试过不同的方法定义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']]
Run Code Online (Sandbox Code Playgroud)

Vol*_*ity 5

HT = [ [] ] * size使size指向同一列表的指针数量.add_HT这不是问题.你需要定义HT[[] for i in xrange(size)].