繁体   English   中英

Lambda语法无效

[英]Lambda invalid syntax

这个:

add = lambda x, y: x += y

得到:

SyntaxError:语法无效

我的任务是能够mullitply或添加1-513之间的每个数字与1个函数和2个lambda函数。 所以,如果你有任何建议,那将有所帮助。

正如大家所说,你应该在lambda体中放一个表达而不是声明,也许这会对你有帮助:

from functools import reduce

add = lambda x,y: reduce(lambda i,j:i+j, range(x,y))

mul

mult = lambda x,y: reduce(lambda i,j:i*j, range(x,y))

或者你可以不reduceadd

add = lambda x,y: sum(range(x,y))

另外,你可以使用这样的operator

from operator import mul
from functools import reduce
mult = lambda x,y: reduce(mul, range(x,y), 1)

为了继续乘法,这有效:

f = lambda n1, n2: n2 * (f(n1, n2-1) if n2 > 1 else 1)
print('f(1, 5) =', f(1, 5))

这个输出:

f(1, 5) = 120

(1 * 2 * 3 * 4 * 5 = 120)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM