classNodeNetwork:def__init__(self,source,filename):self.source=sourceself.filename=filenamedefGG(self):#将列表C中的节点和权重附加到多向图G中。c=[]G=nx.MultiDiGraph()forli...
class NodeNetwork:
def __init__(self,source,filename):
self.source=source
self.filename=filename
def GG(self):
#将列表C中的节点和权重附加到多向图G中。
c = []
G=nx.MultiDiGraph()
for line in open(self.filename):
items = line.strip().split()
c.append(items)
print c
G.add_weighted_edges_from(c)
GG=nx.Graph()
for n,nbrs in G.adjacency_iter():
for nbr,edict in nbrs.items():
maxvalue=max([w['weight'] for w in edict.values()])
GG.add_edge(n,nbr, weight = maxvalue)
return GG
def findPathRoad(self,m):
c = []
G=nx.MultiDiGraph()
for line in open(self.filename):
items = line.strip().split()
c.append(items)
print c
G.add_weighted_edges_from(c)
GG=nx.Graph()
for n,nbrs in G.adjacency_iter():
for nbr,edict in nbrs.items():
maxvalue=max([w['weight'] for w in edict.values()])
GG.add_edge(n,nbr, weight = maxvalue)
return GG
e=nx.shortest_path(GG,self.source,)
d={}
for key in e:
if len(e[key])>m+1:
continue
else:
d[key]=e[key]
#print 'd[key][1:-1]',d[key][1:-1]
return d
可以看到def GG(self):和 def findPathRoad(self,m): 是有部分重复的,但是这两个方法在后文都是需要的,请问大师应该怎么改呢?
展开