我有一个简单的嵌套字典,以字典形式表示具有节点、顶点和边权重的图形:
{node: {vertex: weight, ... } ...}
.
这是我创建它的方法:
with open(file) as f:
__, __1 = next(f).split()
for line in f:
tail, head, weight = line.split()
g1[tail] = {}
g1[tail][head] = int(weight)
这段代码给了我想要的字典。但是,当我运行更多创建类似嵌套字典并访问此字典的代码时,我遇到了错误。这是代码:
nodes = g1.keys()
distance = {}
for n in nodes:
distance[n] = {}
for k in nodes:
distance[n][k] = graph[n][k]
在这里的某个地方,出现了这个错误:
distance[n][k] = graph[n][k]
KeyError: '344'
表明我还没有为“344”创建一个密钥,这就是这段代码试图做的。我想通过将每个节点 n 初始化为一个字典,然后我可以为距离 [n] [k] 创建一个条目。我试过使用默认字典——结果是一样的。为什么?