是否可以使用Networkx将新节点添加到现有边缘

时间:2015-07-01 21:53:31

标签: python networkx

我正在尝试使用python和networkx库实现Sprouts游戏。游戏的想法是从两个顶点开始。玩家从一个顶点到另一个顶点绘制边缘。新节点放置在新创建的边缘上。游戏的其余部分细节不是必需的,但我在底部放置了一个链接以进一步解释它。目前,我首先创建一个节点,然后从起始节点添加一个边到这个新节点。接下来,我将新节点的另一条边添加到终止节点。我的问题是,是否有更简单的方法来实现这一目标?例如,首先绘制边,然后在此边上放置一个新节点。

http://nrich.maths.org/2413

1 个答案:

答案 0 :(得分:1)

您似乎可以使用add_path()功能。

示例:

>>> g = nx.Graph()
>>> g.add_nodes_from( [0,1] )
>>> g.nodes()
[0, 1]
# We have two nodes, zero edges.
# User clicks two vertices, say 0 and 1.
# We add one more node first.
>>> g.add_node(2)
# Then we add the new edges
>>> g.add_path([0,2,1])
>>> g.nodes()
[0, 1, 2]
>>> g.edges()
[(0, 2), (1, 2)]