对于我下面的类函数
def add_vertex(self,vertex):
for i in range(self.num_vertices):
if self.vertices[i] == vertex:
return
self.vertices[self.num_vertices]=vertex
for i in range(self.num_vertices):
self.edges[self.num_vertices][i]=0
self.edges[i][self.num_vertices]=0
self.num_vertices +=1
def add_edges(self,from_vertex,to_vertex,weight):
row=self.index_is(from_vertex)
col=self.index_is(to_vertex)
self.edges[row][col]=weight
当我把这些值
i=0
while i<len(to):
my_graph.add_vertex(from_[i])
my_graph.add_edges(from_[i],to[i],distance[i])
i=i+1
但价值并没有转移 from[]、to[]和distance[]的值
['Luebeck', 'Hamburg', 'Hamburg', 'Hamburg', 'Bremen', 'Bremen', 'Hannover', 'Hannover', 'Magdeburg', 'Berlin', 'Dresden', 'Leipzig', 'Dortmund', 'Kassel', 'Frankfurt', 'Frankfurt', 'Leipzig', 'Dortmund', 'Saarbruecken', 'Saarbruecken', 'Karlsruhe', 'Stuttgart', 'Stuttgart', 'Stuttgart', 'Nuremberg', 'Manchester', 'Birmingham', 'Birmingham']
['Hamburg', 'Bremen', 'Hannover', 'Berlin', 'Hannover', 'Dortmund', 'Magdeburg', 'Kassel', 'Berlin', 'Dresden', 'Leipzig', 'Magdeburg', 'Duesseldorf', 'Frankfurt', 'Dortmund', 'Nuremberg', 'Nuremberg', 'Saarbruecken', 'Frankfurt', 'Karlsruhe', 'Stuttgart', 'Frankfurt', 'Munich', 'Nuremberg', 'Munich', 'Birmingham', 'Bristol', 'London']
['63', '116', '153', '291', '132', '234', '148', '165', '166', '204', '119', '125', '69', '185', '221', '222', '263', '350', '177', '143', '71', '200', '215', '207', '171', '84', '85', '117']
在其他问题中(提示:查看enumerate的工作原理), 您的代码不会像编写的那样工作,因为您只添加了from顶点,因此当需要在to中查找内容时,您会遇到一个错误(此外,即使to中的内容也在from中,您也会遇到一个问题,即在添加顶点之前尝试添加边。保留大部分代码的最佳方法是将数据的馈送改为:
(最小值只是为了确保3个列表的长度相同)
相关问题 更多 >
编程相关推荐