我们必须使用递归重新创建filter()
函数。使用递归重新创建过滤器()函数
我有以下几点:
def even(X):
if X % 2:
return True
return False
def myFilter(f, L):
return f(L[0]) + myFilter(f, L[1:])
当我尝试运行:print (myFilter(even, [0, 1, 2, 3, 4, 5, 6]))
,我得到一个错误说IndexError: list index out of range
。
有人能指出我在正确的方向来解决这个问题吗?
注:我们不能使用任何内置Python功能
你真的想复制过滤器或map吗?也就是说,如果结果是一个布尔值列表(来自'even'函数的返回值),或者结果应该是原始列表中使'even'返回'True'的值? – Blckknght
除了下面的答案,你的偶数函数是倒退的......它返回True为赔率和False为evens。 –