Python networkx迭代子图列表

时间:2017-05-04 15:15:58

标签: python iteration networkx subgraph

我在通过大型nx图G的所有可能的子标记迭代时遇到一些麻烦,从文本文件中作为输入。

以下是我在StackOverflow上找到的一些代码,但是没有产生我想要的东西:

    g = read_graph(sys.argv[1])

    print ('Number of subgraphs:', len(g.subgraph(g.nodes())))

    # extract subgraphs
    sub_graphs = nx.connected_component_subgraphs(g)

    for i, sg in enumerate(sub_graphs):
        print "subgraph {} has {} nodes".format(i, sg.number_of_nodes())
        print "\tNodes:", sg.nodes(data=True)
        print "\tEdges:", sg.edges() 

打印出来:

('Number of subgraphs:', 4039)
subgraph 0 has 4039 nodes
    Nodes: <generator object nodes at 0x10ed77910>
    Edges: <generator object edges at 0x10ed77910>

我要做的是能够遍历长度为3或更大的所有子图,然后以图形的形式对它们执行某些功能。

谢谢!

1 个答案:

答案 0 :(得分:1)

我是在假设&#34;长度为3&#34;意味着&#34;至少3个节点&#34;。

import networkx as nx
g = read_graph(sys.argv[1])

for subgraph in nx.connected_component_subgraphs(g):
    if subgraph.number_of_nodes()>2:
         #your code here