这是我的代码:
filter(lambda n,r: not n%r, range(10,20))
出现了错误:
TypeError: () takes exactly 2 arguments (1 given)
所以我尝试了:
foo = lambda n,r:not n%r 这样可以正常工作。所以我想这样也可以:
bar = filter(foo, range(10,20))
但是,又出现了错误:
TypeError: () takes exactly 2 arguments (1 given)
map也有类似的问题。但是reduce可以正常工作。我做错了什么?我是否忽略了一些使用filter或map所必需的关键步骤?
filter(lambda n,r: not n%r, range(10,20))
出现了错误:
TypeError: () takes exactly 2 arguments (1 given)
所以我尝试了:
foo = lambda n,r:not n%r 这样可以正常工作。所以我想这样也可以:
bar = filter(foo, range(10,20))
但是,又出现了错误:
TypeError: () takes exactly 2 arguments (1 given)
map也有类似的问题。但是reduce可以正常工作。我做错了什么?我是否忽略了一些使用filter或map所必需的关键步骤?
filter()
会向你的 lambda 函数传递一个参数,但它需要两个参数。使用变量无法解决这个问题。 - NullUserException