在python中打印图形的连接组件
我正在尝试打印图形的连接组件。但它的打印对象是生成器 这是我的graph.py在python中打印图形的连接组件,python,graph,networkx,Python,Graph,Networkx,我正在尝试打印图形的连接组件。但它的打印对象是生成器 这是我的graph.py import networkx as nx import matplotlib.pyplot as plt #import math import csv #import random as rand import sys def buildG(G, file_, delimiter_): #construct the weighted version of the contact graph from c
import networkx as nx
import matplotlib.pyplot as plt
#import math
import csv
#import random as rand
import sys
def buildG(G, file_, delimiter_):
#construct the weighted version of the contact graph from cgraph.dat file
reader = csv.reader(open(file_), delimiter=delimiter_)
for line in reader:
if float(line[2]) != 0.0:
G.add_edge(int(line[0]),int(line[1]),weight=float(line[2]))
def main():
graph_fn="tempset3.txt";
G = nx.Graph() #let's create the graph first
buildG(G, graph_fn, ',')
print G.nodes()
print G.number_of_nodes()
#nx.draw(G)
#plt.show(G)
n = G.number_of_nodes()
print ("no of nodes: ", n)
comps=nx.connected_components(G)
print comps
main()
这是我的tempset3.txt
0,1,9
1,3,5
1,4,17824
2,5,1199
2,6,729
5,7,619
5,8,241
5,10,227
7,8,4
当我运行它时,它会给出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 10]
10
('no of nodes: ', 10)
<generator object connected_components at 0x360f140>
[0,1,2,3,4,5,6,7,8,10]
10
(“节点数:”,10)
如何正确打印连接的组件
输出应该是:[[0,1,3,4],[2,5,6,7,8,10]只需使用
生成器上的列表对象打印(列表(comps))
或在生成器对象上迭代:
for comp in comps:
print (comp)
[0, 1, 3, 4]
[2, 5, 6, 7, 8, 10]
for comp in comps:
print (comp)
[0, 1, 3, 4]
[2, 5, 6, 7, 8, 10]