gpt4 book ai didi

python - 使用列表理解来实现递归函数

转载 作者:行者123 更新时间:2023-12-01 05:25:47 25 4
gpt4 key购买 nike

我已经让这个函数在没有列表理解的情况下工作,但是,我想知道如何使用它:

def flatten(L): 
a_list = []

for i in L:
if isinstance(i, list):
gl = flatten(i)
for n in gl:
a_list.append(n)

else:
a_list.append(i)

return a_list

# This is how I've attempted to use list comprehension, but I get a Syntax
# error and I'm not sure why.

return [n for n in flatten(i) if isinstance(i, list) else i for i in L]

最佳答案

语法错误可以修复,你的优先级错误,你需要括号:

return [(n for n in flatten(i)) if isinstance(i, list) else i for i in L]

不幸的是,这不会做你想做的事情,并且不可能用一个列表理解来完成。

列表推导式为每个输入生成一个结果(类似于 map 操作),因此您无法生成大于原始列表的列表,而这是扁平化所必需的.

在这里寻找替代解决方案:Flatten (an irregular) list of lists

关于python - 使用列表理解来实现递归函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21356782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com