【问题标题】:How to add edges with a list as label in Networkx Python如何在Networkx Python中添加带有列表的边作为标签
【发布时间】:2020-06-02 13:33:16
【问题描述】:

我有这个例子:

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

【问题讨论】:

    标签: python list graph networkx


    【解决方案1】:

    注意:我在下面的代码中将变量名从List1 更改为source_nodesList2 更改为dest_nodesList3 更改为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中的代码以获取更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-30
      • 1970-01-01
      • 2021-10-26
      • 1970-01-01
      • 2017-06-28
      • 1970-01-01
      相关资源
      最近更新 更多