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实现的多项式拟合功能示例【基于matplotlib】
May 15 Python
利用python实现简易版的贪吃蛇游戏(面向python小白)
Dec 30 Python
python把ipynb文件转换成pdf文件过程详解
Jul 09 Python
python 的 openpyxl模块 读取 Excel文件的方法
Sep 09 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
win10下python2和python3共存问题解决方法
Dec 23 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
Python如何输出整数
Jun 07 Python
PyCharm MySQL可视化Database配置过程图解
Jun 09 Python
Python使用正则表达式实现爬虫数据抽取
Aug 17 Python
python3.7中安装paddleocr及paddlepaddle包的多种方法
Nov 27 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中Date获取时间不正确怎么办
2008/06/05 PHP
php 购物车的例子
2009/05/04 PHP
php查找字符串出现次数的方法
2014/12/01 PHP
PhpStorm连接服务器并实现自动上传功能
2020/12/09 PHP
js操作iframe的一些方法介绍
2013/06/25 Javascript
Js点击弹出下拉菜单效果实例
2013/08/12 Javascript
jquery iframe操作详细解析
2013/11/20 Javascript
我的Node.js学习之路(四)--单元测试
2014/07/06 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
ECMAScript6中Map/WeakMap详解
2015/06/12 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
jQuery图片轮播功能实例代码
2017/01/29 Javascript
使用javaScript实现鼠标拖拽事件
2020/04/03 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
详解element-ui中form验证杂记
2019/03/04 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
解决vue单页面 回退页面 keeplive 缓存问题
2020/07/22 Javascript
python写的一个文本编辑器
2014/01/23 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
python实现zabbix发送短信脚本
2018/09/17 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
html5组织文档结构_动力节点Java学院整理
2017/07/11 HTML / CSS
物业保安员岗位职责制度
2014/01/30 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
cf战队收人广告词
2014/03/14 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
2015年学校团委工作总结
2015/05/26 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
2015国庆节感想
2015/08/04 职场文书
初中生物教学随笔
2015/08/15 职场文书
小学运动会开幕词
2016/03/04 职场文书
如何开发一个渐进式Web应用程序PWA
2021/05/10 Javascript
JavaScript实现简单计时器
2021/06/22 Javascript