lambda
lambda,也就是希腊字母中的λ,在python中表示匿名函数的意思。
一般我们定义一个函数,通常以以下的方式进行:
>>> def fun(x):
return x * 2
>>> fun(5)
10
在这个函数中,我们给他取了个名字,叫做fun,那么假如有的时候,我们不需要给函数取名字,是不是可以让整个定义函数的过程更简单呢?
这就是lambda的作用。上面的函数定义过程可以简化为:
>>> lambda x : x * 2
<function <lambda> at 0x00000187507614C0>
返回的是一个函数位置,这就说明已经存在一个匿名函数了。既然匿名函数已经存在,给函数命名就变得简单了,其实就是个赋值嘛。
>>> g = lambda x : x *2
>>> g(4)
8
当然了,前面提到的闭包,也可以用lambda来表示:
>>> def fun(x):
return lambda y : x + y
>>> fun(8)(4)
12
那么外层函数是不是也可以简化成lambda的形式呢?当然可以:
>>> g = lambda x : lambda y : x + y
>>> g(8)(4)
12
filter
过滤器的意思就是可以从一堆东西里按照一定的规则,挑选出自己需要的东西。所以,过滤器的使用方法就是:
过滤器(函数,原材料)
因为原材料是有很多东西构成的,因此原材料一般是一个iterable(可迭代对象)
filter(function or None, iterable),如果函数的位置选择