[英]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))
或者你可以不reduce
, add
:
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.