python ---lambda匿名函数介绍


Posted in Python onMarch 13, 2019

lambda特性:“一个语法,三个特性,四个用法”

一个语法

在Python中,lambda的语法是唯一的。其形式如下:

 lambda argument_list: expression

其中,lambda是Python预留的关键字,argument_list和expression由用户自定义。具体介绍如下。

1.这里的argument_list是参数列表。它的结构与Python中函数(function)的参数列表是一样的。具体来说,argument_list可以有非常多的形式。例如:

a,b
a=1,b=2
 
*args
 
**kwargs
 
a,b=1,*args

这里的lambda argument_list: expression表示的是一个函数。这个函数叫做lambda函数。

三个特性

lambda函数有如下特性:

  1. lambda函数是匿名的:所谓匿名函数,通俗地说就是没有名字的函数。lambda函数没有名字。
  2. lambda函数有输入和输出:输入是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的值。
  3. lambda函数一般功能简单:单行expression决定了lambda函数不可能完成复杂的逻辑,只能完成非常简单的功能。由于其实现的功能一目了然,甚至不需要专门的名字来说明。

下面是lambda函数实例:

  1. lambda:None;函数没有输入参数,输出是None
  2. lambda **kwargs: 1;输入是任意键值对参数,输出是1
  3. lambda x, y: x*y;函数输入是x和y,输出是它们的和x+y
  4. lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性要求是输入参数必须能够进行加法运算)

四个用法

由于lambda语法是固定的,其本质只有一种用法,那就是定义一个lambda函数。实际中,根据这个lambda函数应用场景的不同,可将lambda函数用法扩展为以下几种:

将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换。

例如,为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:time.sleep=lambda x:None。这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。例如,执行time.sleep(3)时,程序不会休眠3秒钟,而是什么都不做。

部分Pytho内置函数接收函数做参数,典型的内置函数有这些:

  1. map函数。此时lambda函数用于指定对列表中每一个元素的共同操作。例如map(lambda x: x%2, range(3)),其结果[0,1,0 ]。
  2. filter函数。此时lambda函数用于指定过滤列表元素的条件。例如filter(lambda x: x % 3 == 0, [1, 2, 3])指定将列表[1,2,3]中能够被3整除的元素过滤出来,其结果是[3]
  3. 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]。
  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 lambda匿名函数详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python算法学习之桶排序算法实例(分块排序)
Dec 18 Python
跟老齐学Python之赋值,简单也不简单
Sep 24 Python
简单的Python的curses库使用教程
Apr 11 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
利用python程序帮大家清理windows垃圾
Jan 15 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
Python反射的用法实例分析
Feb 11 Python
python2与python3共存问题的解决方法
Sep 18 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
python logging 日志的级别调整方式
Feb 21 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
python源文件的字符编码知识点详解
Mar 04 Python
Python实现的列表排序、反转操作示例
Mar 13 #Python
Python实现的调用C语言函数功能简单实例
Mar 13 #Python
Python3调用百度AI识别图片中的文字功能示例【测试可用】
Mar 13 #Python
浅谈python标准库--functools.partial
Mar 13 #Python
Python3实现的简单三级菜单功能示例
Mar 12 #Python
Python3实现的简单工资管理系统示例
Mar 12 #Python
Python3模拟登录操作实例分析
Mar 12 #Python
You might like
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
syphon 虹吸式咖啡冲泡冲煮倒水的得与失
2021/03/03 冲泡冲煮
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
jQuery.clean使用方法及思路分析
2013/01/07 Javascript
JavaScript中json使用自己总结
2013/08/13 Javascript
JS关键字球状旋转效果的实例代码
2013/11/29 Javascript
使用jquery解析XML示例代码
2014/09/05 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
jquery分析文本里url或邮件地址为真实链接的方法
2015/06/20 Javascript
javascript面向对象程序设计高级特性经典教程(值得收藏)
2016/05/19 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
JS实现无缝循环marquee滚动效果
2017/05/22 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
Python按行读取文件的实现方法【小文件和大文件读取】
2016/09/19 Python
python 性能优化方法小结
2017/03/31 Python
Python开发的HTTP库requests详解
2017/08/29 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
python Spyder界面无法打开的解决方法
2018/04/27 Python
python障碍式期权定价公式
2019/07/19 Python
HTML5自定义视频播放器源码
2020/01/06 HTML / CSS
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
DJI全球:DJI Global
2021/03/15 全球购物
寄语十八大感言
2014/02/07 职场文书
买房委托公证书
2014/04/08 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
「租借女友」第2季樱泽墨角色PV&新视觉图公开
2022/03/21 日漫
Javascript的promise,async和await的区别详解
2022/03/24 Javascript