a,...,l 是节点并且 >> 描述弧,我们可以将嵌套列表编写为字典,然后将此对象用于有向无环图。根据您的数据(例如)嵌套列表和它们之间的连接,您可以调整代码。在上面的示例中,我们将三个列表转换为三个弧。可以像这样将列表对象指向字典:
graph = [["a","b","c","d"],["e","f","g","h"],["i","j","k","l"]]
dic_list = []
z = {}
for i in range(len(graph)):
b = dict(zip(graph[i][::1], list(graph[i][1::1])))
dic_list.append(b)
z = {**z, **dic_list[i]}
然后使用 python 文档中的这个标准代码来构建一个 DAG,如下所示:
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
这能回答你的问题吗?