我从git中获得了一些代码,我试图理解它,这是其中的一部分,我不理解该代码的第二行
G = nx.Graph(network_map) # Graph for the whole network
components = list(nx.connected_components(G))
此功能connected_components
的作用是什么?我浏览了文档,但无法正确理解。
答案 0 :(得分:2)
nx.connected_components(G)
将返回"A generator of sets of nodes, one for each component of G"。 Python中的generator允许以惰性方式迭代值(即,仅在必要时才会生成下一项)。
文档提供以下示例:
>>> import networkx as nx
>>> G = nx.path_graph(4)
>>> nx.add_path(G, [10, 11, 12])
>>> [len(c) for c in sorted(nx.connected_components(G), key=len, reverse=True)]
[4, 3]
我们来看一下:
G = nx.path_graph(4)
-创建有向图0-> 1-> 2-> 3
nx.add_path(G, [10, 11, 12])
-添加到G:10-> 11-> 12
所以,现在G是一个具有2个相连组件的图。
[len(c) for c in sorted(nx.connected_components(G), key=len, reverse=True)]
-列出G中所有已连接组件的大小,从最大到最小。结果为[4,3],因为{0,1,2,3}的大小为4,而{10,11,12}的大小为3。
回顾一下,结果是在G中所有连接的组件上生成了一个生成器(惰性迭代器),其中每个连接的组件只是一组节点。