Skip to main content
 首页 » 编程设计

python之append to a sublist append 到每个子列表

2025年05月04日25JustinYoung

我正在编写一个包含 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)]。