2014-12-08 76 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')