我尝试在 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 循环。
