因此我被要求使用filter()
函数在列表上迭代函数,以便在应用函数后,只返回列表中的正值。
到目前为止,我有这个:
def positive_place(f, xs)
ans = filter(lambda x: f(x) > 0, xs)
return ans
我被特别要求不使用for
循环(即使我更喜欢)。我对filter()
不太熟悉,如果有人能告诉我哪里出错了,我会非常感激。上面的函数只返回我提供的列表中的正值。
答案 0 :(得分:2)
您的filter
功能正常。但是有一些错误:
函数定义错误。最后应该包含:
。与def positive_place(f, xs):
如果您使用的是Python 3,它会返回一个过滤器对象。因此,您必须将其转换为列表。与return list(ans)
你的程序看起来像
def positive_place(f, xs):
ans = filter(lambda x: f(x) > 0, xs)
return list(ans)