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解析文件示例
Jan 23 Python
python中的多线程实例教程
Aug 27 Python
Python的Flask框架与数据库连接的教程
Apr 20 Python
python搭建虚拟环境的步骤详解
Sep 27 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
Pandas探索之高性能函数eval和query解析
Oct 28 Python
python最长回文串算法
Jun 04 Python
Python判断一个三位数是否为水仙花数的示例
Nov 13 Python
使用python判断你是青少年还是老年人
Nov 29 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
python写日志文件操作类与应用示例
Jul 01 Python
python分分钟绘制精美地图海报
Feb 15 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
一个改进的UBB类
2006/10/09 PHP
PHP静态调用非静态方法的应用分析
2013/05/02 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
PHP内核探索之变量
2015/12/22 PHP
php之可变函数的实例详解
2017/09/13 PHP
php面向对象基础详解【星际争霸游戏案例】
2020/01/23 PHP
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
JavaScript中for-in遍历方式示例介绍
2014/02/11 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
JS实现倒计时(天数、时、分、秒)
2016/11/16 Javascript
jquery validation验证表单插件
2017/01/07 Javascript
js中获取键盘按下键值event.keyCode、event.charCode和event.which的兼容性详解
2017/03/15 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
AngularJS实现的简单拖拽功能示例
2018/01/02 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
vue中在vuex的actions中请求数据实例
2019/11/08 Javascript
详解Vue的mixin策略
2020/11/19 Vue.js
Python中time模块和datetime模块的用法示例
2016/02/28 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
python ftplib模块使用代码实例
2019/12/31 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
Django多数据库联用实现方法解析
2020/11/12 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
2021/01/18 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
html5 Web SQL Database 之事务处理函数transaction与executeSQL解析
2013/11/07 HTML / CSS
你在项目中用到了xml技术的哪些方面?如何实现的?
2014/01/26 面试题
三年级数学教学反思
2014/01/31 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
倡议书范文大全
2015/04/28 职场文书
校园新闻稿范文
2015/07/18 职场文书