作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想用一堆边附加相同或不同的权重。但是我在 NetworkX 中找不到任何功能。如果函数在 Networkx 中可用那么它是什么,如果没有那么建议我如何在 python 中为边附加权重?例如:如果我有一些边缘列表,它没有边缘
edges=[(1,2),(1,4),(3,4),(4,2)]
然后我想在所有边上附加相同的权重 (1)。
预期输出是:weighted_edges=[(1,2,1),(1,4,1),(3,4,1),(4,2,1)]
最佳答案
最简单的版本是使用 add_weighted_edges_from
import networkx as nx
G=nx.Graph()
G.add_weighted_edges_from([(1,2,1),(1,4,1),(3,4,1),(4,2,1)])
G.edges(data=True) #print out the edges with weight
>[(1, 2, {'weight': 1}),
(1, 4, {'weight': 1}),
(2, 4, {'weight': 1}),
(3, 4, {'weight': 1})]
如果您已经定义了edges
,则使用它们的权重创建边:
edges=[(1,2),(1,4),(3,4),(4,2)]
edges_with_weights=[(a,b,1) for (a,b) in edges]
H=nx.Graph()
H.add_weighted_edges_from(edges_with_weights)
H.edges(data=True)
> [(1, 2, {'weight': 1}),
(1, 4, {'weight': 1}),
(2, 4, {'weight': 1}),
(3, 4, {'weight': 1})]
关于python - 如何在图的边缘分配/附加权重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36021566/
我是一名优秀的程序员,十分优秀!