【发布时间】:2017-06-16 12:46:44
【问题描述】:
my_list = [3, 4, 7, 2, 9, 170]
f = filter(lambda x: x%2==0, my_list)
g = f(my_list)
此 lambda 存在问题,会引发“列表对象不可调用”错误。这是一个非常简单的 lambda,所以我不太确定我在这里做错了什么
【问题讨论】:
-
但是 filter 的结果是(在 Python-2.x 中)一个列表。不是过滤器,您在列表上进行了过滤。
-
f是一个列表,您可以像调用它一样调用它,就像它是一个函数f(my_list) -
我认为您不需要在第二次通过时将您的列表传递给 lambda
f-f应该只包含您正在寻找的过滤列表。 -
f = lambda my_list : filter(lambda x: x%2==0, my_list) -
@a1letterword 你会得到一个
TypeError: 'filter' object is not callable