2014-04-01 4 views
2

내가 파이썬에서이 문제를 가지고, 파이썬은 나에게 KeyError를주는 유지 : 체중파이썬과 networkX의 KeyError를

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 

왜 무게로 인해 오류가 발생하는지 알 수 없습니까?

+0

'g [1] [2] ['weight '] = 1.5'로 지정하고 "g [ 'weight']"와 같은 액세스를 시도하면 "g.edges (data = True)"가 반환됩니다. ?? print attr [n1] [n2] [ 'weight']처럼하려고하면 어떻게됩니까? – AlvaroAV

답변

1

내 생각 엔 그래프에 다른 가장자리가 있고이 모두에 대해 weight 특성을 설정하지 않았기 때문입니다. 다음보십시오 : attr이 모든 경우에 weight의 값이 포함 된 경우

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

참조.

+0

당신은 그것이 모든 경우에 값을 포함하지 않았다는 것은 옳았습니다. –