gpt4 book ai didi

python - 如何在图的边缘分配/附加权重?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:43:46 26 4
gpt4 key购买 nike

我想用一堆边附加相同或不同的权重。但是我在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com