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+selenium3实现浏览器刷简书文章阅读量
Dec 26 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Python实现的连接mssql数据库操作示例
Aug 17 Python
解决python opencv无法显示图片的问题
Oct 28 Python
python 实现数字字符串左侧补零的方法
Dec 04 Python
Django 外键的使用方法详解
Jul 19 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
Python bisect模块原理及常见实例
Jun 17 Python
python如何操作mysql
Aug 17 Python
Python自动化测试基础必备知识点总结
Feb 07 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
Mar 03 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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基础陷阱题(变量赋值)
2012/09/12 PHP
php fsockopen伪造post与get方法的详解
2013/06/14 PHP
用JavaScript脚本实现Web页面信息交互
2006/10/11 Javascript
Extjs 3.3切换tab隐藏相应工具栏出现空白解决
2013/04/02 Javascript
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
JavaScript字符串对象substring方法入门实例(用于截取字符串)
2014/10/17 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
详解Jquery 遍历数组之$().each方法与$.each()方法介绍
2017/01/09 Javascript
vue登录路由验证的实现
2017/12/13 Javascript
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
微信小程序wxs实现吸顶效果
2020/01/08 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
python求斐波那契数列示例分享
2014/02/14 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
使用Python实现批量ping操作方法
2020/05/06 Python
HTML5 Canvas旋转动画的2个代码例子(一个旋转的太极图效果)
2014/04/10 HTML / CSS
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
.NET是怎么支持多种语言的
2015/02/24 面试题
大学生毕业求职的自我评价
2013/09/29 职场文书
自考自我鉴定范文
2013/10/30 职场文书
新闻记者个人求职的自我评价
2013/11/28 职场文书
高校自主招生自荐信
2013/12/09 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
2014年计生标语
2014/06/23 职场文书
2014年基层党建工作总结
2014/11/11 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
皇城相府导游词
2015/02/06 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python