如何用字典向NetworkX已有图中添加节点与边
解决方法
你可以利用NetworkX的add_edges_from()方法一次性完成新节点的添加与边的创建——NetworkX在添加边时,若边的端点不存在,会自动将这些节点纳入图中,无需单独调用添加节点的接口。
具体实现
首先生成需要新增的有向边列表(格式为(父节点, 子节点)),再批量添加到已有图中:
# 用列表推导式快速生成待添加的边 new_edges = [(u, v) for u, child_nodes in d.items() for v in child_nodes] # 批量添加边(自动创建apple、banana、orange节点) G.add_edges_from(new_edges)
验证结果
可以通过以下代码确认节点和边是否正确添加:
# 查看所有节点 print("图中所有节点:", list(G.nodes())) # 预期输出: ['a', 'b', 'c', 'z', 'apple', 'banana', 'orange'] # 查看所有有向边 print("图中所有边:", list(G.edges())) # 预期输出包含初始边(a,z),(b,z),(c,z),以及新增的(a,apple),(a,banana),(b,orange)
内容的提问来源于stack exchange,提问作者Kizu
相关产品推荐
相关产品推荐

