我尝试在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中循环?另外,是否有可能在一个递归?
这不是一个循环本身,它是一个列表理解.例如,您可以使用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循环.
| 归档时间: |
|
| 查看次数: |
70 次 |
| 最近记录: |