如何从标识符递归地创建字典?



我有一个"parent"one_answers";child"ID号码,我试图创建一个嵌套的字典。我:

child_dict = {11: [12, 13], 12:[], 13:[14], 14:[], 15:[]}

,我想去

output = {11: [12, {13:14}], 15:[]}

递归地。最好的方法是什么?

为了使您的输出一致,我认为{13:14}应该是{13:[14]}

下面是创建结构的递归函数:
def create_tree(d):
res = {}
exclude = set() # The keys which are not roots 
def dfs(key):
if key not in res:
exclude.update(d[key])
res[key] = [
child if tree == [] else { child: tree }
for child, tree in map(dfs, d[key])
]
return key, res[key]
for key in d:
dfs(key)
# Only retain the root(s) at the toplevel:
for key in exclude:
res.pop(key)
return res

child_dict = {11: [12, 13], 12:[], 13:[14], 14:[], 15:[]}
res = create_tree(child_dict)
print(res)

最新更新