要将边缘权重添加到Networkx图中,并保留边缘顺序,我们可以使用OrderedDict
来存储边缘顺序和权重,并使用add_weighted_edges_from
函数将边缘权重添加到图中。下面是一个示例代码:
import networkx as nx
from collections import OrderedDict
# 创建一个有向图
G = nx.DiGraph()
# 创建一个有序字典来存储边缘顺序和权重
edges = OrderedDict()
edges[('A', 'B')] = 0.5
edges[('B', 'C')] = 0.8
edges[('C', 'D')] = 0.3
# 将边缘权重添加到图中
G.add_weighted_edges_from([(u, v, w) for (u, v), w in edges.items()])
# 打印图中的边缘和权重
for u, v, w in G.edges(data='weight'):
print(u, v, w)
这将输出:
A B 0.5
B C 0.8
C D 0.3
在示例代码中,我们首先创建一个有序字典edges
来存储边缘顺序和权重。然后,我们使用add_weighted_edges_from
函数将边缘权重和顺序添加到图中。最后,我们使用G.edges(data='weight')
来遍历图中的边缘和权重,并打印它们。