|
|
|
|
移动端

3.1.4 Lambda表达式

《自学Python:编程基础、科学计算及数据分析》第3章Python 进阶,在本章中,我们将学习 Python的一些进阶用法,包括函数的进阶,迭代器、生成器、装饰器、上下文管理器的使用,以及 Python中的变量作用域。本节为大家介绍Lambda表达式。

作者:李金来源:机械工业出版社|2018-05-04 13:24

技术沙龙 | 邀您于8月25日与国美/AWS/转转三位专家共同探讨小程序电商实战

3.1.4 Lambda表达式

在使用函数作为参数的时候,如果传入的函数比较简单或者使用次数较少,在文件中直接定义这些函数就显得比较浪费。为此,Python提供了 Lambda表达式(Lambda Expression)来简化函数的定义。

Lambda表达式用关键字lambda定义,其基本形式为:

  1. lambda <variables><expression> 

Lambda表达式返回的是一个函数对象,其中<varibales>是该函数的参数,<expression>则是函数的返回值,用冒号“:”进行分割。Lambda表达式在定义时只有参数和返回值,并没有显示函数的名称。对于一些简单的函数,这样做可以省去定义函数的麻烦。

例如,平方函数可以用 Lambda表达式定义:

  1. In [1]: lambda x: x ** 2   
  2. Out[1]: <function __main__.<lambda>> 

将它传入map()函数作为参数:

  1. In [2]: map(lambda x: x ** 2, range(5))   
  2. Out[2]: [0, 1, 4, 9, 16] 

用 Lambda表达式作为filter()函数的输入,判断是否为偶数:

  1. In [3]: filter(lambda x: x % 2 == 0, range(5))   
  2. Out[3]: [0, 2, 4] 

用 Lambda表达式和reduce()函数求和:

  1. In [4]: reduce(lambda x, y: x + y, range(5))   
  2. Out[4]: 15  

其中,lambda x, y: x+y表示函数接受 x和y两个变量,并返回变量 x和y的和。可以直接用 Lambda表达式进行赋值,得到的对象是个函数:

  1. In [5]: cube_lambda = lambda x: x ** 3 In [6]: cube_lambda(2) Out[6]: 8 


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络工程师必读——接入网与交换网

本书是以一个典型的计算机广域网通信为背景进行编写的,详细、全面地介绍了通信网中最主要的两个部分:目前,国内外接入网与交换网的主要技...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊