Python和NetworkX KeyError问题

3
我在Python中遇到了一个问题,Python一直报错KeyError: weight。
  g.add_edge(1,3,weight=2.5)
  g[1][2]['weight'] = 1.5
  for n1,n2,attr in g.edges(data=True):
    print n1,n2,attr['weight']

输出。
    KeyError                                  Traceback (most recent call last)
    <ipython-input-56-832c29e7e1db> in <module>()
         2 g[1][2]['weight'] = 1.5
         3 for n1,n2,attr in g.edges(data=True):
   ----> 4      print n1,n2,attr['weight']

   KeyError: 'weight'

   0 1

我不知道为什么重量会给我一个错误?

你赋值为'g[1][2]['weight'] = 1.5',但尝试像"g['weight']"这样访问,那么"g.edges(data=True)"会返回什么?如果你尝试像打印attr[n1][n2]['weight']一样做,你会得到什么? - AlvaroAV
1个回答

3

我猜你的图中可能还有其他边,而且并没有为它们设置weight属性。请尝试以下操作:

for n1,n2,attr in g.edges(data=True):
    print n1,n2,attr

检查在每种情况下attr是否包含weight的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接