NetworkX: как добавить веса к существующему G.edges()?Python

Программы на Python
Anonymous
NetworkX: как добавить веса к существующему G.edges()?

Сообщение Anonymous »


Для любого графа G, созданного в NetworkX, я хочу иметь возможность присваивать некоторые веса функции G.edges() после создания графа. Используемые графы — это сетки, эрдос-рейни, барабаси-альберт и т. д.

Учитывая мой G.edges():

[(0, 1), (0, 10), (1, 11), (1, 2), (2, 3), (2, 12), ...] И мои веса:

{(0,1):1.0, (0,10):1.0, (1,2):1.0, (1,11):1.0, (2,3):1.0, (2, 12):1.0, ...} Как присвоить каждому ребру соответствующий вес? В этом тривиальном случае все веса равны 1.

Я пытался добавить веса в G.edges() напрямую, вот так

для i, край в перечислении (G.edges()): G.edges['weight']=вес[край] Но я получаю вот такую ​​ошибку:

-------------------------------------------- ------------------------------- TypeError Traceback (самый последний вызов — последний) в () 10 11 для i, край в перечислении (G.edges()): ---> 12 G.edges['weight']=weights[edge] Ошибка типа: объект «instancemethod» не имеет атрибута «__getitem__» Что не так? Поскольку G.edges() — это список, почему я не могу получить доступ к его элементам, как и к любому другому списку?

Вернуться в «Python»