好吧,这是一个递归的心不在焉的事情。我有一个不规则的嵌套列表,如下所示: 代理服务器=['a'、'b'、['c'、'd'、'e']、'f'、['g'、['h'、'j']、'k']、'l']
感谢一个递归函数,我想逐级提取项目。这样做的目的是获得如下输出: 一级:a、b、f、l 第二级:c、d、e、g、k 第三级:h,j 这些嵌套列表表示n元树。 到目前为止,我是这样尝试的:
def extractbylevel(chain):
r=[]
depth=0
for item in chain:
if isinstance(item,str):
r.append((depth,item))
if depth > 0:
depth -=1
else:
depth += 1
r = r+extractbylevel(item)
return r
结果输出为:
[(0, 'a'),
(0, 'b'),
(0, 'c'),
(0, 'd'),
(0, 'e'),
(1, 'f'),
(0, 'g'),
(0, 'h'),
(0, 'j'),
(1, 'k'),
(1, 'l')]
所以问题是深度层
递归性会炸毁我的头脑^^ 非常感谢你的帮助
给你:
请尝试以下代码:
您可以这样调用函数:
我已经编辑了你的代码。诀窍不是维护局部变量depth,而是使用它将深度传递给函数实例。代码如下:
相关问题 更多 >
编程相关推荐