2017-05-09 26 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