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

标签 python list graph networkx

我有这个例子:

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]})

最佳答案

注意:我已将变量名称从 List1 更改为 source_nodes,将 List2 更改为 dest_nodes List3 到以下代码中的 data_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'})])

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

关于python - 如何在 Networkx Python 中添加带有列表作为标签的边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60282429/

相关文章:

algorithm - 关于字符串、dp、图形或其他算法的问题

python - 计算列中的天数 groupby

python - 使用 py2neo 获取最短路径中的节点

python - 如何根据 Pandas DataFrame 中其他列的值仅对列的某些元素求和?

c - OpenGL - 将数据分配给 C 中的列表并在 glBufferData 中使用它无法正常工作

algorithm - 如何从给定的一组路由中找到访问图中所有节点的最小路由集?

python - Matplotlib 'key_press_event' 没有响应

javascript - 不同网站上的列表看起来不同

list - 如何制作一个新列表指向其他地方,Lisp

javascript - 是否有不需要服务器的客户端(javascript)图形库?