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创建只读属性对象的方法(ReadOnlyObject)
Feb 10 Python
Python编写百度贴吧的简单爬虫
Apr 02 Python
python类中super()和__init__()的区别
Oct 18 Python
python读取excel表格生成erlang数据
Aug 26 Python
python对list中的每个元素进行某种操作的方法
Jun 29 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
python实现操作文件(文件夹)
Oct 31 Python
Python全面分析系统的时域特性和频率域特性
Feb 26 Python
python 实现在无序数组中找到中位数方法
Mar 03 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
Flask搭建一个API服务器的步骤
May 28 Python
Python实现抖音热搜定时爬取功能
Mar 16 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
9个经典的PHP代码片段分享
2014/12/18 PHP
简单解决新浪SAE无法上传文件的问题
2015/05/13 PHP
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
半个小时学json(json传递示例)
2016/12/25 Javascript
JS文件/图片从电脑里面拖拽到浏览器上传文件/图片
2017/03/08 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
解决vue bus.$emit触发第一次$on监听不到问题
2020/07/28 Javascript
python复制文件代码实现
2013/12/23 Python
详解Python中映射类型(字典)操作符的概念和使用
2015/08/19 Python
Python实现二叉搜索树
2016/02/03 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
CSS3 box-shadow属性实例详解
2020/06/19 HTML / CSS
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
化学学院毕业生自荐信范文
2013/12/17 职场文书
出国留学经济担保书
2014/04/01 职场文书
小学班主任寄语大全
2014/04/04 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
工作汇报开头与结尾怎么写
2014/11/08 职场文书
2014年残疾人工作总结
2014/12/06 职场文书
盗窃案辩护词
2015/05/21 职场文书
2015年圣诞节寄语
2015/08/17 职场文书
七年级思品教学反思
2016/02/20 职场文书
68句权威创业名言
2019/08/26 职场文书
导游词之崇武古城
2019/10/07 职场文书
用Python制作灯光秀短视频的思路详解
2021/04/13 Python
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python
Python anaconda安装库命令详解
2021/10/16 Python