如何从节点列表中获取相应的边

问题描述 投票:1回答:1

我有一个类似于这个形式的节点列表:Nodelist = [[1,2,3],[4,7,6],[7,2,9]]这样就有一条连接它们的边,例如1连接到2和2到3.这些不是我的图中的完整节点集。

我想要做的是,如果Nodelist中的两个节点之间存在连接,则返回边缘列表。即输出= [(1,2),(2,3),(3,1),......]

我所知道的,Nodelist子列表中的每个节点都是相连的,即(1,2),(2,3),(3,1)之间有一条边。

我希望我所要求的是有道理的,任何帮助都会受到赞赏。如果我需要澄清任何事情,请告诉我。

python nodes networkx graph-theory edges
1个回答
1
投票

试试这个:

from itertools import combinations

[list(combinations(x, 2)) for x in node_list] 

combinations给出了给定大小列表的所有组合。所以combinations([1,2,3], 2)会给你[(1,2), (2,3), (3,1)]只为每个node_lists做这个。

© www.soinside.com 2019 - 2024. All rights reserved.