nx.connected_components(G)
вернет "Генератор наборов узлов, по одному для каждого компонента G" . Генератор в Python позволяет выполнять ленивый перебор значений (т. Е. Генерировать следующий элемент только при необходимости).
В документации приведен следующий пример:
>>> 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 - это граф с двумя связными компонентами.
[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, где каждый связанный компонент представляет собой просто набор узлов.