Как построить динамическое c дерево уровня за уровнем в python? - PullRequest
0 голосов
/ 14 февраля 2020

Я хочу построить динамическое c дерево . Начальное состояние дерева имеет только узел root, тогда, я надеюсь, он может добавлять узлы на уровне . Эти добавленные узлы выбираются в соответствии с некоторыми дополнительными функциями. Я нашел несколько похожих вопросов в Переполнении стека, таких как Как динамически построить дерево в Python Как динамически построить дерево в Python, но ответы не удовлетворяют мою потребность и создатель.

1 Ответ

0 голосов
/ 14 февраля 2020

Из ответа на вопрос

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)

Как я уже говорил, он делает то, что вы хотите.

...