【问题标题】:How to construct a dynamic tree level by level in python?如何在python中逐级构建动态树?
【发布时间】:2020-02-14 10:21:33
【问题描述】:

我想构建一个动态树。树的初始状态只有一个根节点,那么,我希望它可以逐级添加节点。这些添加的节点是根据一些附加功能获取的。我在 Stack Overflow 中发现了一些类似的问题,例如 How do I build a tree dynamic in Python How do I build a tree dynamically in Python,但答案并不能满足我的需要和原作者。

【问题讨论】:

  • 为什么答案不能满足您的需求?他们真的做你想做的事?
  • 因为答案应该事先指定所有路径。我想构建第一层,如果我有它的子节点,构建另一个层,......等等。

标签: python dynamic tree


【解决方案1】:

从问题的答案

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)

正如我所提到的,它会做你想做的事。

【讨论】:

    猜你喜欢
    • 2014-02-15
    • 2021-11-05
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    相关资源
    最近更新 更多