如何在python中逐级构建动态树?

2020-02-14 python dynamic tree

我想构造一棵动态树 。树的初始状态只有一个根节点,然后,我希望它可以逐级添加节点 。这些添加的节点根据一些其他功能获取。我在Stack Overflow中发现了一些相似的问题,例如如何在Python中动态构建树如何在Python中动态构建树 ,但是答案不能满足我的需求和创建者。

Answers

从问题的答案

import collections
from functools import reduce 

def add_element(root, path, data):
    if len(path) == 1:
        root[path[0]] = data
    else:
        add_element(root[path[0]], path[1:], data)

tree = lambda: collections.defaultdict(tree)
root = tree()

add_element(root,["top"],{}) #Make a level
add_element(root,["top","level1"],{}) # Make another level
add_element(root,["top","level1","val"],2) #Data
print(root)

正如我提到的,它确实可以完成您想要的操作。

Related