python lambda的使用详解


Posted in Python onFebruary 26, 2021

1. lambda语法

     lambda argument_list: expression

     lambda是Python预留的关键字,argument_list(参数列表)和expression(关于参数的表达式)由用户自定义。

2. lambda使用简单示例

  • lambda x, y: x*y;函数输入是x和y,输出是它们的积x*y
  • lambda:None;函数没有输入参数,输出是None
  • lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性要求是输入参数必须能够进行加法运算)
  • lambda **kwargs: 1;输入是任意键值对参数,输出是1

3. lambda的四个用法

  • 将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数
add = lambda x, y:x+y
add(1,2)
>>>3
  • 将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换(我还不懂这个的意思)

例如,为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:time.sleep=lambda x:None。这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。例如,执行time.sleep(3)时,程序不会休眠3秒钟,而是什么都不做。

  • 将lambda函数作为其他函数的返回值,返回给调用者

函数的返回值也可以是函数。例如return lambda x, y: x+y返回一个加法函数。这时,lambda函数实际上是定义在某个函数内部的函数,称之为嵌套函数,或者内部函数。对应的,将包含嵌套函数的函数称之为外部函数。内部函数能够访问外部函数的局部变量,这个特性是闭包(Closure)编程的基础。

  • 将lambda函数作为参数传递给其他函数

部分Python内置函数接收函数作为参数。典型的此类内置函数有这些。

(1)filter函数。此时lambda函数用于指定过滤列表元素的条件。例如filter(lambda x: x % 3 == 0, [1, 2, 3])指定将列表[1,2,3]中能够被3整除的元素过滤出来,其结果是[3]。

(2)sorted函数。此时lambda函数用于指定对列表中所有元素进行排序的准则。例如sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序,其结果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。

(3)map函数。此时lambda函数用于指定对列表中每一个元素的共同操作。例如map(lambda x: x+1, [1, 2,3])将列表[1, 2, 3]中的元素分别加1,其结果[2, 3, 4]。

(4)reduce函数。此时lambda函数用于指定列表中两两相邻元素的结合条件。例如reduce(lambda a, b: '{}, {}'.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])将列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]中的元素从左往右两两以逗号分隔的字符的形式依次结合起来,其结果是'1, 2, 3, 4, 5, 6, 7, 8, 9'。

另外,部分Python库函数也接收函数作为参数,例如gevent的spawn函数。此时,lambda函数也能够作为参数传入。

以上就是python lambda的使用详解的详细内容,更多关于python lambda的使用的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python文件操作之目录遍历实例分析
May 20 Python
Python中有趣在__call__函数
Jun 21 Python
如何利用Fabric自动化你的任务
Oct 20 Python
详解Python中的相对导入和绝对导入
Jan 06 Python
Python3中简单的文件操作及两个简单小实例分享
Jun 18 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
python时间与Unix时间戳相互转换方法详解
Feb 13 Python
python 的numpy库中的mean()函数用法介绍
Mar 03 Python
手残删除python之后的补救方法
Jun 26 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 #Python
详解Python openpyxl库的基本应用
Feb 26 #Python
解决python的空格和tab混淆而报错的问题
Feb 26 #Python
Python Spyder 调出缩进对齐线的操作
Feb 26 #Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 #Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 #Python
Python xlwings插入Excel图片的实现方法
Feb 26 #Python
You might like
php 删除记录实现代码
2009/03/12 PHP
CodeIgniter集成smarty的方法详解
2016/05/26 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
Javascript下拉刷新的简单实现
2017/02/14 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
jQuery实现的滑块滑动导航效果示例
2018/06/04 jQuery
微信小程序实现下拉框功能
2019/07/16 Javascript
Vue如何实现监听组件原生事件
2020/07/03 Javascript
Python实现抓取百度搜索结果页的网站标题信息
2015/01/22 Python
详解Python中的type()方法的使用
2015/05/21 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python中实现将多个print输出合成一个数组
2018/04/19 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
python实现定时提取实时日志程序
2018/06/22 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
python获取array中指定元素的示例
2019/11/26 Python
Pandas时间序列:时期(period)及其算术运算详解
2020/02/25 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
基于Python脚本实现邮件报警功能
2020/05/20 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
大学生简历的个人自我评价
2013/12/04 职场文书
2014年党课学习材料
2014/05/11 职场文书
电子专业求职信
2014/06/19 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2015年财务部工作总结
2015/04/10 职场文书
企业爱心捐款倡议书
2015/04/27 职场文书
初中思品教学反思
2016/02/20 职场文书
您对思维方式了解多少?
2019/12/09 职场文书
HTML+JS实现在线朗读器
2022/02/15 Javascript
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python