2
NetworkX에서 생성 된 그래프 G가 있으면 그래프가 생성 된 후 이후에 G.edges() 에 일부 가중치를 할당 할 수 있기를 원합니다. 관련된 그래프는 그리드, erdos-reyni, barabasi-albert 등입니다.NetworkX : 기존 G.edges()에 가중치를 추가하는 방법은 무엇입니까?
가 주어 내 G.edges()
:
[(0, 1), (0, 10), (1, 11), (1, 2), (2, 3), (2, 12), ...]
그리고 내 weights
:
{(0,1):1.0, (0,10):1.0, (1,2):1.0, (1,11):1.0, (2,3):1.0, (2,12):1.0, ...}
가 어떻게 각 에지 관련 가중치를 부여 할 수 있습니까?이 사소한 경우 모든 가중치는 내가 직접
for i, edge in enumerate(G.edges()):
G.edges[i]['weight']=weights[edge]
등) G.edges (에 가중치를 추가하려고했습니다 1.
있습니다하지만이 오류 얻을 :
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-48-6119dc6b7af0> in <module>()
10
11 for i, edge in enumerate(G.edges()):
---> 12 G.edges[i]['weight']=weights[edge]
TypeError: 'instancemethod' object has no attribute '__getitem__'
을 무엇이 잘못 되었나요?G.edges()
이 목록이므로 다른 목록과 마찬가지로 해당 요소에 액세스 할 수없는 이유는 무엇입니까?
좋아, 그럼 당신은 무엇을 제안합니까? – FaCoffee
@ CF84 업데이트를 참조하십시오. –
감사합니다. 나중에 가중치와 관련된 에지 데이터 키에 액세스해야하므로 (예 : 발생 행렬을 계산해야 함), 귀하의 예제에 어떤 내용이 포함됩니까? 나는 그것을 찾을 수 없다. 그래서 내가 없다고 가정한다. 그것을 추가하는 방법? – FaCoffee