else: minimum = minimum.nodes[0] for edge in edges: nodeIndex = [i for i , x in enumerate(edge.nodes) if edge.nodes[i] != src][0] if edge.nodes[nodeIndex].distance < minimum.distance: minimum = edge.nodes[nodeIndex] return minimum myGraph = Graph() vertices = [Node("A") , Node("B") , Node("C") , Node("D") , Node("E") , Node("F")] for vertex in vertices: myGraph.add_vertex(vertex) edges = [ #A -> B #A -> C #A -> D ((vertices[0] , vertices[1]) , 2) , ((vertices[0] , vertices[2]) , 5) , ((vertices[0] , vertices[3]) , 1) , #B -> C #B -> D ((vertices[1] , vertices[2]) , 3) , ((vertices[1] , vertices[3]) , 2) , #C -> D #C -> E #C -> F ((vertices[2] , vertices[3]) , 3) , ((vertices[2] , vertices[4]) , 1) , ((vertices[2] , vertices[5]) , 5), #D -> E ((vertices[3] , vertices[4]) , 1), #E -> F ((vertices[4] , vertices[5]) , 2) ] for edge in edges: