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脚本把sqlAlchemy对象转换成dict的教程
May 29 Python
读写json中文ASCII乱码问题的解决方法
Nov 05 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
如何安装多版本python python2和python3共存以及pip共存
Sep 18 Python
Python中new方法的详解
Jan 15 Python
详解python编译器和解释器的区别
Jun 24 Python
基于pandas中expand的作用详解
Dec 17 Python
python实现图像拼接功能
Mar 23 Python
python小白学习包管理器pip安装
Jun 09 Python
Python如何输出警告信息
Jul 30 Python
python的数学算法函数及公式用法
Nov 18 Python
python+opencv实现视频抽帧示例代码
Jun 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 版本]
2007/03/20 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
JavaScript入门教程(1) 什么是JS
2009/01/31 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
jquery cookie实现的简单换肤功能适合小网站
2013/08/25 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
node(koa2) web应用模块介绍详解
2019/03/29 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
[02:16]卖萌的僵尸 DOTA2神话信使飞僵小宝来袭
2014/03/24 DOTA
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
理解python正则表达式
2016/01/15 Python
python三方库之requests的快速上手
2019/03/04 Python
Python列表与元组的异同详解
2019/07/02 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python3连接mysql获取ansible动态inventory脚本
2020/01/19 Python
python中把元组转换为namedtuple方法
2020/12/09 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
工作失职检讨书范文
2014/01/16 职场文书
自荐信格式简述
2014/01/25 职场文书
幼儿园运动会入场词
2014/02/10 职场文书
优秀老员工获奖感言
2014/02/15 职场文书
校园安全教育广播稿
2014/02/17 职场文书
2014年大学生四年规划书范文
2014/04/03 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
关于环保的活动方案
2014/08/25 职场文书
英文感谢信格式
2015/01/21 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python
JS实现刷新网页后之前浏览位置保持不变示例详解
2022/08/14 Javascript