可以在lambda中完成循环吗?

1 python lambda loops

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

zxm=lambda k:[k+x for x in range(k)]
print(zxm(5))
Run Code Online (Sandbox Code Playgroud)

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

[5,6,7,8,9]
Run Code Online (Sandbox Code Playgroud)

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

35
Run Code Online (Sandbox Code Playgroud)

我们怎样才能在lambda中循环?另外,是否有可能在一个递归?

Eli*_*sky 7

这不是一个循环本身,它是一个列表理解.例如,您可以使用sum获得总和.

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

In [8]: zxm(5)
Out[8]: 35
Run Code Online (Sandbox Code Playgroud)

请注意,for内部禁止声明lambda; 只允许表达式,所以虽然你可以使用列表推导,但你不能写一个传统的for循环.