【发布时间】:2019-08-03 11:01:27
【问题描述】:
我正在使用 lambda 函数来检查最大值,传递 3 个参数
from functools import reduce
# function to check bigger item
f = lambda a,b,c: a if (a > b) else (b if (b > c) else c)
# reduce function
reduce(f, [47, 11, 42, 102, 13])
但是我收到这样的错误
TypeError Traceback(最近一次调用最后一次)
5 6 # reduce function 7 reduce(f, [47, 11, 42, 102, 13, 21]) TypeError: <lambda>() missing 1 required positional argument: 'c'
【问题讨论】:
-
你认为reduce通过了多少个参数?你实际上是在传递 3 个参数吗? (如果您认为它不应该这样工作,请考虑一下。lambda 只是一种编写函数的方法,但任何函数都可以工作。为什么要 reduce 内省为传递参数数量的函数?)
-
reduce函数需要/比较 2 个项目,而不是 3 个
标签: python python-3.x lambda