【发布时间】:2020-06-20 05:11:09
【问题描述】:
我想将此函数转换为 lambda,但我想知道我做错了什么。
temperatures=[10,20,30,11,22,33]
def check_weather(temp,low,high):
if temp in range(low,high):
return True
else:
return False
print(list(filter(lambda weather,low,high: True if weather in range(low,high) else False,temperatures)))
错误是:
TypeError: () 缺少 2 个必需的位置参数:'low' 和 'high'
【问题讨论】:
-
你在哪里使用
temp?我假设weather这里是temp -
那么
low、high的值应该从哪里来? -
您能否将预期的输出添加到问题中。
-
基于布尔值返回
True或False是不必要的复杂。只需返回布尔值本身。 -
这能回答你的问题吗? Passing a function with two arguments to filter() in python - 虽然您的函数采用三个参数,但概念是相同的。 - 另外:Python list filtering with arguments ... How to get filter to work with a lambda taking multiple arguments?