Skip to main content
 首页 » 编程设计

python之可以在 lambda 中完成循环吗

2025年05月04日13daizhj

我尝试在 lambda 函数中循环,我的代码是:

zxm=lambda k:[k+x for x in range(k)] 
print(zxm(5)) 

我得到的输出是当我给出输入时:

[5,6,7,8,9] 

然而,我的预期输出是所有 5 个数字的总和,我想要:

35 

我们如何在 lambda 中循环?另外,有没有递归的机会?

请您参考如下方法:

这本身不是循环,而是列表理解。例如,您可以使用 sum 来获取总和。

In [7]: zxm = lambda k: sum(k+x for x in range(k)) 
 
In [8]: zxm(5) 
Out[8]: 35 

注意像for这样的语句在lambda中是被禁止的;只允许使用表达式,因此虽然您可以使用列表理解,但您不能编写传统的 for 循环。