NetworkX: как добавить веса к существующему G.edges()? ⇐ Python
NetworkX: как добавить веса к существующему G.edges()?
Для любого графа 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() — это список, почему я не могу получить доступ к его элементам, как и к любому другому списку?
Для любого графа 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() — это список, почему я не могу получить доступ к его элементам, как и к любому другому списку?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение