Python递归树(for循环)
我正在python上开发基于树的程序。我需要使用递归重写此函数,并清除所有这些for循环: 我的函数示例:Python递归树(for循环),python,Python,我正在python上开发基于树的程序。我需要使用递归重写此函数,并清除所有这些for循环: 我的函数示例: def items_on_level(full_tree, level): for key0, value0 in full_tree.items(): for key1, value1 in value0.items(): for key2, value2 in value1.items(): for key
def items_on_level(full_tree, level):
for key0, value0 in full_tree.items():
for key1, value1 in value0.items():
for key2, value2 in value1.items():
for key3, value3 in value2.items():
print(key3)
输入:-级别-我的递归树的级别
-全树-与父母和孩子一起听写
{<Category: test>: {<Category: dkddk>: {}, <Category: test2>: {<Category: test3>: {}, <Category: test5>: {<Category: kfpokpok>: {}}}}
函数应返回:当前级别上的所有对象救命!谢谢!我想这会有点帮助
def itemsOnLevel(root, level):
if not level:
return list(root.keys())
else:
return list(itertools.chain.from_iterable([itemsOnLevel(v, level-1) for k,v in root.items()]))
if(full_tree != {}):
for node in return_list_current_level(full_tree):
items_on_level(node, level+1)
else:
return None
中的
做了什么?我想我知道这是为哪门课做的。我想知道我是否应该给教授发封电子邮件。我不认为有什么好的理由用Python编写递归lambda表达式。使用正则函数,它会让你少伤脑筋。@Blckknght好吧,如果不是obvi,我的答案不会是这样的我们知道这是一个家庭作业。但它仍然有效…非常感谢!可以将此函数重写为模板标记吗?我不明白为什么不应该。还有一个问题。如何编写返回所有子对象的模板标记(从字典全文树)。问题是模板应该使用变量。类似这样:{{child item_name}}item_name-对象的名称现在对我来说是最重要的。如果您能帮助我,我将不胜感激。我正在尝试创建一个树,但不幸的是,我无法使用mptt和其他库。谢谢。
if(full_tree != {}):
for node in return_list_current_level(full_tree):
items_on_level(node, level+1)
else:
return None
def onl(r,l):
if l:
obj=[]
for i in [onl(v,l-1) for v in r.values()]:
obj.extend(i)
return obj
return r.keys()