【发布时间】:2012-09-26 22:28:42
【问题描述】:
这是我的代码:
filter(lambda n,r: not n%r,range(10,20))
我得到错误:
TypeError: <lambda>() takes exactly 2 arguments (1 given)
然后我尝试了:
foo=lambda n,r:not n%r
效果很好。所以我认为这会起作用:
bar=filter(foo,range(10,20))
但又一次:
TypeError: <lambda>() takes exactly 2 arguments (1 given)
类似的事情也发生在地图上。但减少工作正常。我究竟做错了什么?我是否遗漏了使用过滤器或地图所需的重要内容?
【问题讨论】:
-
filter()将单个参数传递给您的 lambda,而它需要两个参数。使用变量不会让你绕过它。