2

我有问题,我以前从未处理过,但它就在这里

我有不同的任务,当执行一个任务时,会执行下面的任务,依此类推,所以结构如下:

图表

所以现在我有文本文件

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 和 ... 可能经过的所有路径一样。

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

4

1 回答 1

1
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
于 2013-10-24T14:42:18.340 回答