while (E > 0):
line = raw_input("enter edges : ")
data = line.split()
mygraph[data[0]] = {data[1] : data[2]} //this line
print mygraph
E-=1
所需的数据结构:
mygraph = {
'B': {'A': 5, 'D': 1, 'G': 2}
'A': {'B': 5, 'D': 3, 'E': 12, 'F' :5}}
我想为同一个键添加多个条目,例如 但 mycode 只为一个节点取一个值,然后替换 条目。如何做到这一点?
最佳答案
您需要首先为键 data[0]
添加一个空字典(如果它尚不存在),然后向其中添加值。否则你每次循环时都会将其清除。
两种常用的方法是使用 setdefault
在普通字典上:
mygraph.setdefault(data[0], {})[data[1]] = data[2]
或使用collections.defaultdict
其中默认值是空字典:
>>> from collections import defaultdict
>>> mygraph = defaultdict(dict)
>>> edges = [[1, 2, 3], [1, 3, 6]]
>>> for edge in edges:
... mygraph[edge[1]][edge[2]] = edge[3]
>>> mygraph
{1: {2: 3,
3: 6}}
关于Python在多维字典中添加数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32919331/