具有不同节点集的两个 NetworkX 图之间的差异

Difference between two NetworkX graphs with different node sets

我想要差值 G1-G2 给出存在于 G1 中但不存在于 G2 中的边的输出。只有当 G1 和 G2 具有相同的节点集时,NetworkX 中的 difference 函数才允许这种差异。

我的例子: G1.edges=EdgeView([(0, 1), (1, 2), (1, 3), (1, 18))

G2.edges=EdgeView([(0, 1), (1, 2), (1, 3), (2, 22)])

期望的输出是(1,18)

EdgeView class 定义边上的集合操作。
因此,您可以简单地使用:

G1.edges() - G2.edges()

示例:

>>> G2.edges()
EdgeView([(0, 1), (1, 2), (1, 3), (2, 22)])
>>> G1.edges()
EdgeView([(0, 1), (1, 2), (1, 3), (1, 18)])
>>> G1.edges() - G2.edges()
{(1, 18)}