0

我试图在 python 中遍历这个算法中的一个图。如果我想一一打印图表的所有元素或遍历整个图表,我应该做哪些更改。

任何帮助将不胜感激。谢谢。

       grapth={'A': ['B', 10, 'B', 10, 'B', 10, 'C', 15], 'C': [1001, 'OUT'], 'B':   
       [1000, 'IN', 1000, 'IN']}

       print "Path:",find_all_paths(Portdict1,'A','IN')



 def find_all_paths(graph, start, end, path=[]):
    path = path + [start]
    if start == end:
        return [path]
    if not graph.has_key(start):
        return []
    paths = []
    for node in graph[start]:
        if node not in path:
            newpaths = find_all_paths(graph, node, end, path)
            for newpath in newpaths:
                paths.append(newpath)
    return paths
4

1 回答 1

0

你的“Graph”是一个字典,Python 中的字典是无序的,如果你想使用有序字典,你可以从collections模块中导入它。

from collections import OrderedDict

graph = OrderedDict({'A': ['B', 10, 'B', 10, 'B', 10, 'C', 15], 'C': [1001, 'OUT'], 'B': [1000, 'IN', 1000, 'IN']})

已订购的证明:

>>> for key, value in graph.items():
    print key, value


A ['B', 10, 'B', 10, 'B', 10, 'C', 15]
C [1001, 'OUT']
B [1000, 'IN', 1000, 'IN']

请注意,由于您的初始代码具有“A、C、B”顺序的键,因此它们将保留在 OrderedDict 中。

于 2013-07-10T13:17:05.170 回答