2017-05-09 45 views
0

在我的代码中,我试图编写类似于哈希表的代码,并且我正在为将数字添加到表的部分工作,有人可以帮助我吗?在这里我的代码:试图从字典中替换一个数字(python)

num = input("Number you want to insert:") 
table = {"1":0, "2":0, "3":0 } 
print(table) 
def insert(table): 
    find_key = int(num) % len(table) 
     # Linear probing? 
    for i in range(len(table)):    
     if i == find_key: 
      dict[i] = int(num) 
      print(table) 
    print(i) 
    return i 
print(table) 
insert(table)     

的错误是 类型错误:“类型”对象不支持项目分配

+0

你希望'dict [i] = int(num)'能实现什么? 'dict'是一种类型。你正试图分配给它,哪个不会工作。 '字典已经是散列表,所以它不清楚你的目标是什么。 –

+0

'dict [i] = ...'应该是'table [i] = ...'。除此之外,您不需要使用索引(0,1,2,..)来访问项目,您需要使用键(“1”,“2”,“3”)(迭代字典将生成键)! – falsetru

+0

字典*是*哈希表。如果您要尝试自己实现一个,我建议您使用*列表*,而不是您自己实现散列表 – snb

回答

1

有一个错字:dict[...] = ...应该table[...] = ...


你不需要自己实现哈希表。 Python字典是散列表。

简单地分配给字典将添加(或替换,如果有给定的关键)项目。

def insert(table, num): 
    table[num] = int(num) # not dict[...] = ... 

num = input("Number you want to insert:") 
table = {"1":0, "2":0, "3":0 } 
print(table) # before insert 
insert(table, num) 
print(table) # after insert