Skip to main content
 首页 » 编程设计

Python通过解析找出所有路径

2025年05月04日9zengkefu

我有一个问题,我以前从未处理过,但现在是

我有不同的任务,当执行一个任务时,执行下面的任务等等,所以结构是这样的:

所以现在我有了文本文件

Name, Path, Time 
D : A/B/C/D, - 
A : A, 3 PM 
B : A/B, - 
Z : A/B/C/D/Z, -  
E : E, 4 PM 
F : E/r/f, - 
G : G, 5 PM 
X : A/X, - 
O : A/B/O, - 

如何让它像时间一样打印

3 -> A 
     A -> B -> C -> D -> Z 
     A -> B -> O 
     A -> X 
 
4 -> E 
     E -> r -> F 
 
5 -> G 

我想确定 B->C 和 B->D 是否都以某种方式显示,就像这个 A、E、G 和...等可能经过的所有路径一样。

编辑:如果问题太基础,你能把我转到正确的方向吗?

请您参考如下方法:

inp = """ 
D : A/B/C/D, - 
A : A, 3 PM  
B : A/B, -  
Z : A/B/C/D/Z,  
E : E, 4 PM  
F : E/r/f, -  
G : G, 5 PM """ 
 
trans_1 = [ele.split(":")[1].strip().split(",") for ele in inp.splitlines() if ele] 
 
trans_2 = [(ele[0].strip().replace("/", "->"), ele[1].strip()) for ele in trans_1] 
 
#_dict = {}  
 
for ele in trans_2: 
    if ele[1] != "-": 
        #_dict[ele[1]] = [] 
        print ele[1], "->", ele[0] 
        for inner_ele in trans_2: 
            if ele[0] == inner_ele[0][0]: 
                #_dict[ele[1]].append(inner_ele[0]) 
                print "\t", inner_ele[0] 
 
# print _dict 

输出:

3 PM -> A 
        A->B->C->D 
    A 
    A->B 
    A->B->C->D->Z 
-> A->B->C->D->Z 
4 PM -> E 
    E 
    E->r->f 
5 PM -> G 
    G