Python:从父子关系计算路径

2024-09-30 00:31:15 发布

您现在位置:Python中文网/ 问答频道 /正文

父项)作为csv(700000行)输入

Child   Parent
fA00    f0
fA9 fA0
fA31    fA0
fA30    fA0
fA1 fA00
dccfA1  fA00
fA2 fA00
fA3 fA00
fA01    fA00
fA4 fA00
fA5 fA00
fA6 fA00
fA7 fA00
fA0 fA00
fA142149    fA00
fA02    fA00
fA8 fA00
qA1 fA10
fA22    fA10
fA23    fA10
fA11    fA10
qA2     fA10
fA15    fA11
fA13    fA11
fA12    fA11
fA14    fA13
fA17    fA16
fA18    fA17
fA19    fA17
fA20    fA17
fA21    fA19
etc....

它可以达到14层深。上一级父级是f0

我想遍历子-父关系来确定路径

预期结果

^{pr2}$

如何在Python中实现这一点?在


Tags: csvchildparentf0父项fa0fa19fa00
1条回答
网友
1楼 · 发布于 2024-09-30 00:31:15

我开始考虑tree structures的复杂递归构造,但基本上它非常简单。创建一个child到parent的映射,然后从子列表开始,从父列表开始,再到父列表的顶部。递归例程可以很容易地提取孩子的祖先。在

'''
This is the family tree:
            
f0:
    a0:
        b0
        b1:
        b2:
    a1:
        b3:
        b4:
    a2:
        b5:
            c0
            c1
'''
ancestry = [
    ('b1', 'a0'),
    ('c1', 'b5'),
    ('b2', 'a0'),
    ('b3', 'a1'),
    ('b4', 'a1'),
    ('b5', 'a2'),
    ('a0', 'f0'),
    ('a1', 'f0'),
    ('a2', 'f0'),
    ('b0', 'a0'),
    ('c0', 'b5'),
]

代码是:

^{pr2}$

输出为:

f0/a1/b4
f0/a0/b0
f0/a0/b1
f0/a0/b2
f0/a1/b3
f0/a2/b5/c1
f0/a2/b5/c0

我将把它作为练习留给read the csv file,也许可以对输出进行更好的排序。在

相关问题 更多 >

    热门问题