【发布时间】:2021-04-08 12:35:50
【问题描述】:
我目前正在做一个递归问题并且我解决了它。现在我想通过用辅助函数替换 for 循环来使解决方案功能齐全,但我不能完全理解这一点。我很确定它是通过一个帮助函数完成的,该函数通过递归调用自身并在每个项目之后对列表进行切片来循环列表,但我似乎没有任何运气。有什么建议吗?
def flatten(arr):
result = []
for item in arr:
if type(item) != type([]):
result = result + [item]
else:
result = result + flatten(item)
return result
print(flatten([1,[[2],3],[[[4]]]]))
##[1,2,3,4]
【问题讨论】:
-
arr 是什么类型?
-
@IgnacioAlorre 我更新了问题以进行澄清
-
@IgnacioAlorre 我想用自己的函数自己实现它,这样我就能更好地理解一切。
-
@user737163 我关于仅展平一个级别的评论是为了回应其他人的评论。
标签: python recursion functional-programming