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 文件与目录操作
Dec 24 Python
python输入错误密码用户锁定实现方法
Nov 27 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
python实现AES加密与解密
Mar 28 Python
Django 对IP访问频率进行限制的例子
Aug 30 Python
python绘制随机网络图形示例
Nov 21 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
python 连续不等式语法糖实例
Apr 15 Python
Python3自定义json逐层解析器代码
May 11 Python
用Python实现童年贪吃蛇小游戏功能的实例代码
Dec 07 Python
pytorch 中forward 的用法与解释说明
Feb 26 Python
python游戏开发Pygame框架
Apr 22 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函数http_build_query使用详解
2014/08/20 PHP
XHProf报告字段含义的解析
2016/05/17 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
jQuery代码性能优化的10种方法
2016/06/21 Javascript
纯原生js实现贪吃蛇游戏
2020/04/16 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
手写Vue弹窗Modal的实现代码
2019/09/11 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
uni-app使用countdown插件实现倒计时
2020/11/01 Javascript
解读Python中degrees()方法的使用
2015/05/18 Python
Python扫描IP段查看指定端口是否开放的方法
2015/06/09 Python
python修改字典内key对应值的方法
2015/07/11 Python
Python基于pygame实现图片代替鼠标移动效果
2015/11/11 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
python使用rpc框架gRPC的方法
2018/08/24 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
pyqt5 lineEdit设置密码隐藏,删除lineEdit已输入的内容等属性方法
2019/06/24 Python
学习Django知识点分享
2019/09/11 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
《日月潭》教学反思
2014/02/28 职场文书
幼儿园毕业寄语
2014/04/03 职场文书
服务承诺书怎么写
2014/05/24 职场文书
政风行风整改方案
2014/10/25 职场文书
辞职书格式样本
2015/02/26 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
2015年七一建党节活动方案
2015/05/05 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL
MySQL窗口函数的具体使用
2021/11/17 MySQL