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实现115网盘自动下载的方法
Sep 30 Python
Python检测网站链接是否已存在
Apr 07 Python
python实现的AES双向对称加密解密与用法分析
May 02 Python
python实现向微信用户发送每日一句 python实现微信聊天机器人
Mar 27 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
python3获取url文件大小示例代码
Sep 18 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
tensorflow 大于某个值为1,小于为0的实例
Jun 30 Python
使用npy转image图像并保存的实例
Jul 01 Python
Python 在函数上添加包装器
Jul 28 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 Python
python模板入门教程之flask Jinja
Apr 11 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基础学习小结
2011/04/17 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
php版本CKEditor 4和CKFinder安装及配置方法图文教程
2019/06/05 PHP
语义化 H1 标签
2008/01/14 Javascript
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
prototype.js常用函数详解
2016/06/18 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
AngularJS页面传参的5种方式
2017/04/01 Javascript
BootStrap数据表格实例代码
2017/09/13 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
2017/12/08 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
使用 Vue 绑定单个或多个 Class 名的实例代码
2018/01/08 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
jQuery插件实现弹性运动完整示例
2018/07/07 jQuery
JSON的parse()方法介绍
2019/01/31 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
Python3 正在毁灭 Python的原因分析
2014/11/28 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
pyftplib中文乱码问题解决方案
2020/01/11 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
python3中for循环踩过的坑记录
2020/12/14 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
毕业生就业自荐信
2013/12/04 职场文书
红领巾广播站广播稿
2014/02/01 职场文书
创业培训计划书
2014/05/03 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
mysql 索引合并的使用
2021/08/30 MySQL