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解析html开发库pyquery使用方法
Feb 07 Python
Python实现的二维码生成小软件
Jul 11 Python
python实现人民币大写转换
Jun 20 Python
python将秒数转化为时间格式的实例
Sep 16 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
Oct 14 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
python 搜索大文件的实例代码
Jul 08 Python
Django如何实现网站注册用户邮箱验证功能
Aug 14 Python
Python实现aes加密解密多种方法解析
May 15 Python
keras CNN卷积核可视化,热度图教程
Jun 22 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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/06/03 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
javascript之大字符串的连接的StringBuffer 类
2007/05/08 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
简单实现jQuery弹幕效果
2017/05/06 jQuery
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
NodeJS加密解密及node-rsa加密解密用法详解
2018/10/12 NodeJs
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
socket在egg中的使用实例代码详解
2019/05/30 Javascript
python实现删除文件与目录的方法
2014/11/10 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
2016/01/20 Python
Python实现命令行通讯录实例教程
2016/08/18 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
2018/01/29 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
selenium+python自动化测试环境搭建步骤
2019/06/03 Python
python 随机森林算法及其优化详解
2019/07/11 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
python collections模块的使用
2020/10/16 Python
法国女性内衣购物网站:Glamuse
2019/05/13 全球购物
iostream与iostream.h的区别
2015/01/16 面试题
迎新春趣味活动方案
2014/08/24 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
鸡毛信观后感
2015/06/11 职场文书
运动会100米加油稿
2015/07/21 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
HTML5 新增内容和 API详解
2021/11/17 HTML / CSS
vue使用wavesurfer.js解决音频可视化播放问题
2022/04/04 Vue.js