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局域网ip扫描示例分享
Apr 03 Python
python服务器与android客户端socket通信实例
Nov 12 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 Python
儿童学习python的一些小技巧
May 27 Python
Python通过paramiko远程下载Linux服务器上的文件实例
Dec 27 Python
Python数据可视化教程之Matplotlib实现各种图表实例
Jan 13 Python
Python对象转换为json的方法步骤
Apr 25 Python
python进程间通信Queue工作过程详解
Nov 01 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
Python基础学习之奇异的GUI对话框
May 27 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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
新浪新闻小偷
2006/10/09 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
php中switch语句用法详解
2015/08/17 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
php生成二维码不保存服务器还有下载功能的实现代码
2018/08/09 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
function foo的原型与prototype属性解惑
2010/11/19 Javascript
关于window.pageYOffset和document.documentElement.scrollTop
2011/04/05 Javascript
浅析document.createDocumentFragment()与js效率
2013/07/08 Javascript
Bootstrap精简教程
2015/11/27 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
vue 计时器组件的实现代码
2017/09/14 Javascript
angular.js4使用 RxJS 处理多个 Http 请求
2017/09/23 Javascript
mint-ui在vue中的使用示例
2018/04/05 Javascript
小程序云函数调用API接口的方法
2019/05/17 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
详解JSON.stringify()的5个秘密特性
2020/05/26 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
python学习数据结构实例代码
2015/05/11 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
什么是Python变量作用域
2020/06/03 Python
Python try except finally资源回收的实现
2021/01/25 Python
美国沙龙美发产品购物网站:Hair.com by L’Oreal
2020/11/09 全球购物
计算机求职自荐信范文
2014/04/19 职场文书
关于读书的演讲稿800字
2014/08/27 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
2014年化妆品销售工作总结
2014/12/01 职场文书
业务员岗位职责范本
2015/04/03 职场文书
小学语文教学反思范文
2016/03/03 职场文书
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang