Python 字典删除第一对

Python 字典删除第一对,python,Python,我正在努力实现一个搜索算法。说到python,我还是新手,但我的问题让我觉得很奇怪。我创建了一个包含链接的dict。当我打印出dict时,第一对就被删除了。代码的其余部分也是如此,因此失败了 links = {'A': 'B', 'A': 'C', 'D': 'A', 'E': 'A'} print links 这就是程序开始时调用的所有代码。这实际上是第二次和第三次调用,但仍然很奇怪。如果您多次使用密钥,则需要使用其他方法来存储数据 您可以使用列表列表,但这不允许您使用所有的nice di

我正在努力实现一个搜索算法。说到python,我还是新手,但我的问题让我觉得很奇怪。我创建了一个包含链接的dict。当我打印出dict时,第一对就被删除了。代码的其余部分也是如此,因此失败了

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

这就是程序开始时调用的所有代码。这实际上是第二次和第三次调用,但仍然很奇怪。

如果您多次使用密钥,则需要使用其他方法来存储数据

您可以使用列表列表,但这不允许您使用所有的nice dict功能:

links = [['A', 'B'], ['A', 'C'], ['D', 'A'],  ['E', 'A']]
或者,您可以使用列表作为值

links = {'A': ['B', 'C'], 'D': ['A'],  'E': ['A']}
如果动态生成dict,则defaultdict很有用,它会初始化键的值,例如使用列表:

from collections import defaultdict
links = defaultdict(list)
links['A'].append('B')
links['A'].append('C')
通过 它将使您更好地了解dic、列表和元组,而您的上述代码不起作用,因为您试图在dic所在的位置存储同一个键的值。需要具有唯一的键,否则将覆盖

像这样

A = {'A':'1','A':'2','B':'3'}
这里一个键不是唯一的,所以它将被覆盖,而在下面提到的代码中它将不会被覆盖

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

字典只能存储唯一的键。@AshwiniChaudhary我没有想到这一点。谢谢你的评论!