没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
lambda 表达式,又称匿名函数,即,函数没有具体的名称,常用来表示内部仅包含 1 行表达式的函数。 使用 lambda 编写的代码更加简洁紧凑,但是 lambda 函数支持的功能却是十分有限的,目前 PEP8 已经不建议使用 lambda,而是推荐使用 def 去定义一个函数,即便如此,作为 Python 程序员,认识和了解该匿名函数还是有必要的。 lambda 只是一个表达式,函数体比 def 简单很多。 lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。 lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间
资源推荐
资源详情
资源评论
【【Python 技巧】技巧】lambda 表达式(匿名函数)及其在内置函数表达式(匿名函数)及其在内置函数
中的应用中的应用
lambda 表达式,又称匿名函数,即,函数没有具体的名称,常用来表示内部仅包含 1 行表达式的函数。
使用 lambda 编写的代码更加简洁紧凑,但是 lambda 函数支持的功能却是十分有限的,目前目前 PEP8 已经不建议使用已经不建议使用
lambda,而是推荐使用,而是推荐使用 def 去定义一个函数去定义一个函数,即便如此,作为 Python 程序员,认识和了解该匿名函数还是有必要的。
lambda 只是一个表达式,函数体比 def 简单很多。
lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。
lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
虽然 lambda 函数看起来只能写一行,却不等同于 C 或 C++ 的内联函数,后者的目的是调用小函数时不占用栈内存从而增加
运行效率。
lambda 的语法:lambda argument(s):expression
lambda 函数可以有很多个参数,但是只能有一个表达式。lambda 操作符不能有任何声明,它返回一个函数对象,可以将此函
数对象赋值给任何变量。
lambda 函数简单示例:
lambda x, y: x * y # 函数输入是 x 和 y,输出是它们的积 x*y
lambda:None # 函数没有输入参数,输出是 None
>>> a = lambda x: x+1
>>> a(1)
2
# 用 def 函数表示如下:
>>> def a(x):
return x+1
>>> a(1)
2
lambda 函数与 def 的主要不同点:
lambda 可以立刻传递(无需变量),自动返回结果;
lambda 在内部只能包含一行代码;
lambda 是一个为编写简单的函数而设计的,而 def 用来处理更大的任务;
lambda 可以定义一个匿名函数,而 def 定义的函数必须有一个名字。
lambda 函数的优势:
对于单行函数,使用 lambda 表达式可以省去定义函数的过程,让代码更加简洁;
对于不需要多次复用的函数,使用 lambda 表达式可以在用完之后立即释放,提高程序执行的性能。
lambda 函数经常用于一些内置函数中:
map() 函数:遍历序列,对序列中每个元素进行操作,此时 lambda 函数用于指定对列表中每一个元素的共同操作条件。
>>> list1 = [1, 2, 3, 4] >>> list2 = [5, 6, 7 ,8] >>> list3 = map(lambda a, b: a + b, list1, list2) # 将两个列表中对应的元素相加
>>> print(list3)
>>> print(list(list3))
[6, 8, 10, 12]
filter() 函数:对于序列中的元素进行筛选操作,此时 lambda 函数用于指定过滤列表元素的条件。
>>> list1 = [1, 2, 3, 4] >>> list2 = filter(lambda a: a > 2, list1) # 筛选出列表中大于 2 的元素
>>> print(list2)
>>> print(list(list2))
[3, 4]
reduce() 函数:对于序列中所有元素进行累积操作,此时 lambda 函数用于指定列表中两两相邻元素的累积条件。
>>> from functools import reduce
>>> list1 = [1, 2, 3, 4] >>> list2 = reduce(lambda a, b: a + b, list1) # 两两相邻元素进行相加操作
>>> print(list2)
资源评论
weixin_38518958
- 粉丝: 0
- 资源: 883
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 6吨级轻型载货汽车驱动桥的设计及虚拟装配 (1)
- Springboot 学生管理系统更删改查
- 九缸星形发动机点火器3D
- 毕业设计-宿舍管理系统设计与实现
- 全面详解Ruby编程语言,从入门到高级实战
- CC2530无线zigbee裸机代码实现红外遥控器接收IRDecod、串口打印UART、12864液晶屏显示例程.zip
- 跨平台的云端爬虫系统项目全套技术资料.zip
- CC2530无线zigbee裸机代码实现红外遥控发送、串口打印、LCD12864液晶屏、按键程序.zip
- Delphi编程语言从基础知识到高级应用全面指南
- Scratch图形化编程语言入门与进阶指南
- 酒店后台管理系统项目全套技术资料.zip
- CC2530无线zigbee裸机代码实现RS485串口通讯.zip
- Day-03 Vue222222222222222222222
- Visual Basic语言入门与进阶教程
- 数据安全治理白皮书6.0-2024年最新版
- 基于pygame的圣诞小游戏
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功