我正在用python实现Dijkstra的算法,我想知道如何从列表中删除一个对象的实例? 以下是我的代码中出现错误的部分:“列表.删除(x) “不在列表中”。在
class Vertex:
def __init__(self, id, name):
self.id = id
self.name = name
self.minDistance = float("inf")
self.previousVertex = None
self.edges = []
def computePath(self, sourceId):
for i in self.vertexes:
if i.id == sourceId:
startVertex = i
startVertex.minDistance=0
break
else:
continue
unvisited = []
for vertex in self.vertexes:
unvisited.append(vertex)
while len(unvisited)!=0:
self.visited.append(startVertex)
unvisited.remove(startVertex)
list.remove()
将从列表中删除第一项,其中该项等于要删除的任何项。在换句话说,算法就是这样做的:
接下来的诀窍是使} method 完成的。默认的实现是只在两个项目是同一个对象时返回
==
等式测试通过。这是用^{True
,因此item is item_to_remove
为真。在您可以为您的
^{pr2}$Vertex
类创建自定义方法:您需要决定两个
Vertex
实例何时相等。在相关问题 更多 >
编程相关推荐