networkx 加边权重
时间: 2023-10-30 09:08:46 浏览: 97
在 NetworkX 中,可以使用 `add_weighted_edges_from` 方法来为图中的边添加权重。这个方法可以接收一个包含边的元组和权重的列表的迭代器。例如,下面的代码演示了如何创建一个带权重的有向图:
```python
import networkx as nx
G = nx.DiGraph()
edges = [(1, 2, 0.5), (2, 3, 0.75), (3, 1, 0.25)]
G.add_weighted_edges_from(edges)
```
在这个例子中,我们使用 `DiGraph` 创建一个有向图,然后使用 `add_weighted_edges_from` 方法添加了三条带权重的边。每条边都表示为一个三元组 (u, v, w),其中 u 和 v 是边的起点和终点,w 是边的权重。因此,第一条边是从节点 1 到节点 2 的边,权重为 0.5。
一旦图被创建,你可以使用 `edges` 属性来访问图中的所有边。例如,下面的代码将打印出图中所有边的权重:
```python
for u, v, w in G.edges(data='weight'):
print(f"({u}, {v}): {w}")
```
输出结果如下:
```
(1, 2): 0.5
(2, 3): 0.75
(3, 1): 0.25
```
在这个例子中,我们使用了 `data` 参数来指定我们要获取的边属性。由于我们只对权重感兴趣,因此我们将 `data` 设置为 `'weight'`。这使得 `edges` 属性返回一个三元组 (u, v, w),其中 w 是边的权重。然后我们使用 `for` 循环遍历所有的边,并打印出它们的权重。
阅读全文