def BiggerThan20(i)
return i > 20
此函数用作filter()的论证。我仅对语句“ return i> 20”感到困惑,通常在调用时会导致错误,但在filter()中使用时不会出错。
答案 0 :(得分:1)
return语句计算表达式i > 20
(返回布尔值)并返回它,因此不会出现错误。过滤器根据返回值进行过滤。
答案 1 :(得分:0)
filter
需要可调用(〜函数)作为第一个参数。 BiggerThan20
是可调用的,因此可以使用:
def BiggerThan20(i):
return i > 20
data = list(range(15, 25))
res = list(filter(BiggerThan20, data))
# [21, 22, 23, 24]
return i > 20
是不可调用的;在函数定义之外甚至没有意义。但您可以使用lambda
expression(〜一个无名函数)-这些又可以调用:
res = list(filter(lambda i: i > 20, data))
# [21, 22, 23, 24]