2014-12-08 72 views
-3

我正在實施搜索算法。談到python,我仍然是綠色的,但是我的問題讓我覺得非常奇怪。我創建了一個包含鏈接的字典。當我打印字典時,第一對被刪除。其餘代碼也是如此,因此它失敗了。Dictonary刪除第一對

links = {'A': 'B', 'A': 'C', 'D': 'A', 'E': 'A'} 
print links 

這就是在程序開始時調用的所有代碼。這是第二次和第三次通話,但它仍然很奇怪。

+2

字典只能存儲唯一的密鑰。 – 2014-12-08 09:07:21

+0

@AshwiniChaudhary我沒有想到這一點。不過謝謝你的評論! – Herbstein 2014-12-08 09:08:40

回答

1

去走遍this 它會給你更好的主意關於dic,列表和元組,以及上面的代碼不起作用,因爲您嘗試爲dic存儲相同鍵的值。需要有獨特的密鑰,否則將覆蓋

這樣

A = {'A':'1','A':'2','B':'3'} 

這裏的關鍵是不是唯一的,這樣它會覆蓋,而在下面提及的代碼也不會

A = {'A1':'1', 'A2':'2', 'A3':'3'} 
0

如果您有多次密鑰,則需要使用其他方法來存儲數據。

你可以用列表的列表,但是這不會讓你使用所有好的字典功能:

links = [['A', 'B'], ['A', 'C'], ['D', 'A'], ['E', 'A']] 

或者您可以使用一個列表作爲值。

links = {'A': ['B', 'C'], 'D': ['A'], 'E': ['A']} 

如果動態生成的字典中,defaultdict是有幫助的,它將初始化一個鍵的值,例如與列表:

from collections import defaultdict 
links = defaultdict(list) 
links['A'].append('B') 
links['A'].append('C')