NetworkX 组件函数返回 Python 生成器。list
您可以使用 Python函数在生成器中创建项目列表。这是一个示例,它显示了这一点,并且还找到了最大的弱连接组件。
In [1]: import networkx as nx
In [2]: G = nx.DiGraph()
In [3]: G.add_path([1,2,3,4])
In [4]: G.add_path([10,11,12])
您可以使用例如 list 将生成器转换为子图列表:
In [5]: list(nx.weakly_connected_component_subgraphs(G))
Out[5]:
[<networkx.classes.digraph.DiGraph at 0x278bc10>,
<networkx.classes.digraph.DiGraph at 0x278ba90>]
max 运算符采用一个关键参数,您可以将其设置为 Python 函数,该函数len
在每个子图上调用 len(g) 来计算节点数。因此,要获得具有最多节点数的组件,您可以编写
In [6]: largest = max(nx.weakly_connected_component_subgraphs(G),key=len)
In [7]: largest.nodes()
Out[7]: [1, 2, 3, 4]
In [8]: largest.edges()
Out[8]: [(1, 2), (2, 3), (3, 4)]