繁体   English   中英

如何在Networkx Python中添加带有列表的边作为标签

[英]How to add edges with a list as label in Networkx Python

我有这个例子:

G.add_nodes_from(List1)
G.add_nodes_from(List2)
edgeList = list(zip(List1, List2))
for item in List3:
    G.add_edges_from(edgeList, label = item) 

我想要的结果是两个列表之间的每条边都将列表3的相应元素作为标签。 像这样的东西:

(List1[0], List2[0], {'label': List3[0]})

:我从改变变量名称List1source_nodesList2dest_nodesList3data_nodes在下面的代码。

您可以尝试在所有三个列表上使用zip并使用nx.add_edge添加边。 像这样的东西:

import networkx as nx

source_nodes = ['A', 'B', 'C', 'D']
dest_nodes = ['P', 'Q', 'R', 'S']
data_nodes = ['W', 'X', 'Y', 'Z']

G = nx.DiGraph()

# Each element of this zip will be
# (source[i], dest[i], data[i]) 
for u,v,d in zip(source_nodes, dest_nodes, data_nodes):
    G.add_edge(u, v, label=d)

print(G.edges(data=True))
# OutEdgeDataView([('A', 'P', {'label': 'W'}),
#                  ('B', 'Q', {'label': 'X'}),
#                  ('C', 'R', {'label': 'Y'}),
#                  ('D', 'S', {'label': 'Z'})])

您还可以查看此 Google Colab Notebook 中的代码以了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM