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多进程同步Lock、Semaphore、Event实例
Nov 21 Python
用Python展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
Python3.6笔记之将程序运行结果输出到文件的方法
Apr 22 Python
Python2.7.10以上pip更新及其他包的安装教程
Jun 12 Python
对python:循环定义多个变量的实例详解
Jan 20 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
python实现ip代理池功能示例
Jul 05 Python
python 通过视频url获取视频的宽高方式
Dec 10 Python
解决Python列表字符不区分大小写的问题
Dec 19 Python
Python小白不正确的使用类变量实例
May 29 Python
python自动化发送邮件实例讲解
Jan 04 Python
关于python pygame游戏进行声音添加的技巧
Oct 24 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上传图片之时间戳命名(保存路径)
2014/08/15 PHP
php传值方式和ajax的验证功能
2017/03/27 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
最简单的js图片切换效果实现代码
2011/09/24 Javascript
原生的html元素选择器类似jquery选择器
2014/10/15 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
jquery操作checkbox火狐下第二次无法勾选的解决方法
2016/10/10 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
JavaScript贪吃蛇小组件实例代码
2017/08/20 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
Vue中fragment.js使用方法小结
2020/02/17 Javascript
Python sys.argv用法实例
2015/05/28 Python
tensorflow实现对图片的读取的示例代码
2018/02/12 Python
Python列表切片操作实例总结
2019/02/19 Python
python实现对图片进行旋转,放缩,裁剪的功能
2019/08/07 Python
python软件都是免费的吗
2020/06/18 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
CSS3+HTML5+JS 实现一个块的收缩与展开动画效果
2020/11/17 HTML / CSS
历史系自荐信范文
2013/12/24 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
办公室文员工作自我鉴定
2014/09/19 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
爱心捐助活动总结
2015/05/09 职场文书
文化大革命观后感
2015/06/17 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
优秀创业计划书分享
2019/07/19 职场文书
PHP新手指南
2021/04/01 PHP
浅谈PHP7中的一些小技巧
2021/05/29 PHP
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技