下面的代码片段以递归方式将嵌套列表和元素展平为新列表,但无法将所有元素附加到列表中。
预期产出:[1,2,4,5,6,7,5,8]
我的输出:[1,2,8]
def foo(l):
result = []
for i in l:
if type(i)==list:
foo(i)
else:
result.append(i)
return result
input_list = [1,2,[4,5,[6,7],5],8]
print (foo(input_list))
答案 0 :(得分:5)
您正在重置每次通话中的result
。将它传递到函数内部。
def foo(l,result):
for i in l:
if isinstance(i,list):
foo(i,result)
else:
result.append(i)
return result
input_list = [1,2,[4,5,[6,7],5],8]
result=[]
print (foo(input_list,result))
输出:
[1, 2, 4, 5, 6, 7, 5, 8]