我是 python 新手。我想编写一个程序,在stdout
. 我理想的输出是这样的:
0
|__0
|__4
| |__360
| |__1000
272
|__3460
我收集的数据如下:
0 : [0, 4]
4 : [360]
272 : [3460]
368 : [4184]
472 : [504, 576, 7016]
568 : [584, 640]
576 : [664, 672]
640 : [1048]
664 : [368, 372, 512, 788]
788 : [2120, 2720, 2976, 2996, 3956, 3980]
左列是父进程id,右列是子进程id。我将数据放在一个名为dic
. 所以字典key
是父进程ID,字典value
是由子进程ID组成的列表。
我的代码是这样的:
for key in dic.keys():
print key, '\n|'
for v in dic[key]:
print '__', v, '\n|'
问题是我只能输出两层树。以数据为例,576
因为父 id 也是 的子 id 472
。所以576
,664、672应该放在472的子树中。我的代码不适用于这个。看来我们需要使用递归函数。但我不知道如何处理它。
你们能给我提示吗?
编辑:从我收集的数据来看,有一些父母 ID 没有祖父母。所以最终的输出应该是一片森林。不是单根树。