首页 > 解决方案 > 如何使用 networkx 访问连接的组件?

问题描述

networkx.connected_components曾经有一个主图的子图列表,但它返回的只是这个:

<generator object connected_components at 0x000001AC12663820>

如何访问已连接组件的列表?我应该在下面的代码中添加什么来做到这一点?:

G = nx.Graph()
components= nx.connected_components(G)

separated_graphs = list(components)

print(separated_graphs)

标签: pythonnetworkxconnected-components

解决方案


您上面的代码实际上确实返回了一个空白列表(即它评估生成器对象)。相反,print(components)如您所述,输出生成器对象而不对其进行评估。

然而,一个重要示例的输出可能仍然不是您所期望的,因为nx.connected_components()返回的是节点的子集而不是子图。的文档nx.connected_components()有一个很好的例子,展示了实际访问子图的最佳实践:

S = [G.subgraph(c).copy() for c in nx.connected_components(G)]

推荐阅读