my_list = [3, 4, 7, 2, 9, 170]
f = filter(lambda x: x%2==0, my_list)
g = f(my_list)
有一个问题,这个lambda启动"列表对象是不可调用的"错误。这是一个非常简单的lambda,所以我不太确定我在这里做错了什么
答案 0 :(得分:7)
您可能认为f
是过滤器,而不是f
是my_list
list
上的过滤结果 }。这是python-2.x中的filter
和python-3.x中的生成器(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