def ds(x):
return 2*x+1
>>>ds(5)
>11
对比:
lambda x:2*x+1
<function<lambda> at 0x000000000001D67730>
>>>g = lambda x:2*x+1
>>>g(5)
>11
1.python写一些执行脚本的时候,使用lambda就可以省下定义函数的过程,使代码更精简。
2.对于一些抽象并且整个程序执行下来只需要用一两次的函数,有时候给函数起个名字也是比较头疼的问题,使用lambda就不需要考虑命名的问题。
filter() 过滤器
filter(None,[1,0,Flase,True])
list(filter(None,[1,0,Flase,True]))
>[1,True]
def odd(x):
return x%2
temp = range(10)
show = filter(odd,temp)
list(show)
>[1,3,5,7,9]
改进:
list(filter(lambda x : x % 2,range(10)))
>>[1,3,5,7,9]
map
list(map(lambda x : x * 2,range(10)))
>>[0,2,4,6,8,10,12,14,16,18]