【发布时间】:2019-01-01 03:47:03
【问题描述】:
我有一个代表森林(许多非二叉树)的巨大深度字典,我想处理森林并创建一个包含森林所有可能关系的文本文件,例如给定字典:
{'a': {'b': {'c': {}, 'd': {}}, 'g': {}}}
生成的文本文件如下所示:
a b c
a b d
a g
请注意,嵌套字典很大,递归迭代它会导致内存运行时错误。
我尝试做的是将字典递归地转换为列表列表,这会产生运行时错误。代码:
def return_list(forest):
for ent in forest.keys():
lst = [new_ent] + grab_children(forest[ent])
yield lst
def grab_children(father):
local_list = []
for key, value in father.items():
local_list.append(new_key)
local_list.extend(grab_children(value))
return local_list
错误:“比较中超出了最大递归深度”RuntimeError
【问题讨论】:
-
请显示您的递归代码和错误。目前尚不清楚您希望如何从您的示例中排列。
-
DFS,每个终结符写一行。或者,如果可以避免的话,就不要在 python 中进行递归迭代。
-
@Zev 我添加了代码和错误。谢谢
-
这可能只是为了做
sys.setrecursionlimit(1500)
标签: python dictionary tree nested