035-函数式编程

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),如果函数的位置选择


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容