python中的lambda说列表对象不可调用

时间:2017-06-16 12:46:45

标签: python list lambda filter

my_list = [3, 4, 7, 2, 9, 170]

f = filter(lambda x: x%2==0, my_list)

g = f(my_list)

有一个问题,这个lambda启动"列表对象是不可调用的"错误。这是一个非常简单的lambda,所以我不太确定我在这里做错了什么

1 个答案:

答案 0 :(得分:7)

您可能认为f过滤器,而不是fmy_list list上的过滤结果 }。这是中的filter中的生成器(partial对象)。

但是,您可以构建过滤器,例如使用functools的{​​{1}}函数,例如:

from functools import partial

f = partial(filter,lambda x : x % 2 == 0) # construct a "filter"

g = f(my_list) # filter my_list