首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中检查networkx中是否存在具有相同标签的节点

在python中检查networkx中是否存在具有相同标签的节点
EN

Stack Overflow用户
提问于 2018-01-08 09:30:11
回答 1查看 7.5K关注 0票数 9

我使用下面的代码通过networkx构建我的图形,如下所示。

代码语言:javascript
复制
mylist = [('chocolate_pudding', 6.3), ('tim_tam', 178.5), ('bread', 3.5), 
('chocolate_pudding', 8.5), ('tim_tam', 3.0), ('butter', 204.0)]

G = nx.Graph()

for ele in mylist:
    #if node with ele[0] does not exists, add the new node
         G.add_node(ele[0], weight=ele[1])
    #else, update the weight with the new weight value (weight = existing_weight + ele[1])

在创建新节点之前,我想检查具有相同标签的节点是否存在。如果该节点存在,我希望通过将新值添加到现有值来更新其权重。

例如,在上面的示例中,我只需要4个节点的权重,并且它们的权重应该分别为14.8, 181.5, 3.5, 204.0

我没有找到在networkx中做这件事的合适方法。因此,请让我知道这是否可能在networkx?

EN

回答 1

Stack Overflow用户

发布于 2018-01-08 10:00:50

我认为最简单的方法是在构建图表之前计算这些值。

代码语言:javascript
复制
from collections import defaultdict
import networkx as nx

mylist = [('chocolate_pudding', 6.3), ('tim_tam', 178.5), ('bread', 3.5), 
('chocolate_pudding', 8.5), ('tim_tam', 3.0), ('butter', 204.0)]

d = defaultdict(int)

for n, w in mylist:
    d[n] += w

G = nx.Graph()

for n, w in d.items():
    G.add_node(n, weight=w)

print(nx.get_node_attributes(G, 'weight'))
# {'chocolate_pudding': 14.8, 'tim_tam': 181.5, 'bread': 3.5, 'butter': 204.0}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48143212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档