Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不丢失数据的情况下创建嵌套字典?_Python_Dictionary_Nested - Fatal编程技术网

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