Python 如何在不丢失数据的情况下创建嵌套字典?
我有一个文件,其中包含矩阵形式的一组节点的距离值。我提取了这些值,并希望将它们保存在嵌套字典中 我已经试过了,但是我的字典只包含上一次迭代的值Python 如何在不丢失数据的情况下创建嵌套字典?,python,dictionary,nested,Python,Dictionary,Nested,我有一个文件,其中包含矩阵形式的一组节点的距离值。我提取了这些值,并希望将它们保存在嵌套字典中 我已经试过了,但是我的字典只包含上一次迭代的值 d={} i, j = 0,0 for f in tmp: for k in range(3,len(f),3): d[nodes[i]] = {} d[nodes[i]][nodes[j]]= f[k-2]+f[k-1] j += 1 i += 1 j = 0
d={}
i, j = 0,0
for f in tmp:
for k in range(3,len(f),3):
d[nodes[i]] = {}
d[nodes[i]][nodes[j]]= f[k-2]+f[k-1]
j += 1
i += 1
j = 0
return d
d={'A': {'P': '5'},
'B': {'P': '3'},
'C': {'P': '6'},
'D': {'P': '5'},
'E': {'P': '3'},
'F': {'P': '33'},
'G': {'P': '21'},
'H': {'P': '39'},
'I': {'P': '4'}}
但d应包括:
d={"A":{"A":5,"B":6, "C":7, "D":8, "E":9, "F":10, "G":11;"H":12, "I":13},
"B":{"A":3,"B":4, "C":5, "D":8, "E":9, "F":14, "G":11;"H":12,
"I":16}},.....
在内部循环的每次迭代中,您都在初始化第二级dict。这就是导致它“丢失数据”的原因 相反,您可以使用defaultdict:
from collections import defaultdict
d = defaultdict(dict)
i, j = 0,0
for f in tmp:
for k in range(3,len(f),3):
d[nodes[i]][nodes[j]]= f[k-2]+f[k-1]
j += 1
i += 1
j = 0
return d
片段不完整。节点中有什么?@B.Germ:See