|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我在测试lambda函数时候:
0. 配合filter
>>> list(filter(lambda x : x , range(10)))
[1, 2, 3, 4, 5, 6, 7, 8, 9]
以上显示很正常
1. 如果没有filter
>>> list(lambda x : not(x) ,range(10))
Traceback (most recent call last):
File "<pyshell#12>", line 1, in <module>
list(lambda x : not(x) ,range(10))
TypeError: list expected at most 1 argument, got 2
这样就很奇怪了,filter不是就判断为真的结果么,为什么不需要判断,直接使用lambda函数,列表就不能导出来了呢?
是不是lambda不是直接导出列表的,只是类似一个return迭代后的数据生成器?
list() 只接收一个参数,而你传进了两个参数。
你理解错了,lambda 也是一个函数,它不一定非得配合 filter 使用:
- >>> f = lambda x: x * x
- >>> f(2) # 2 * 2
- 4
- >>> f(4) # 4 * 4
- 16
复制代码
|
|