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和perl实现批量对目录下电子书文件重命名的代码分享
Nov 21 Python
深入解析Python的Tornado框架中内置的模板引擎
Jul 11 Python
Python中音频处理库pydub的使用教程
Jun 07 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
python 定义给定初值或长度的list方法
Jun 23 Python
使用pandas的box_plot去除异常值
Dec 10 Python
Python序列类型的打包和解包实例
Dec 21 Python
Python Tkinter Entry和Text的添加与使用详解
Mar 04 Python
浅谈Python爬虫原理与数据抓取
Jul 21 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
Aug 07 Python
Python Django ORM连表正反操作技巧
Jun 13 Python
Python 绘制多因子柱状图
May 11 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
IIS环境下快速安装、配置和调试PHP5.2.0
2006/12/17 PHP
请离开include_once和require_once
2013/07/18 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
如何使Chrome控制台支持多行js模式——意外发现
2013/06/13 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
BAT及各大互联网公司2014前端笔试面试题--JavaScript篇
2014/10/29 Javascript
鼠标悬浮显示二级菜单效果的jquery实现
2014/10/29 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
Vue插值、表达式、分隔符、指令知识小结
2018/10/12 Javascript
详解JavaScript 事件流
2020/09/02 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
Python实现数据库编程方法详解
2015/06/09 Python
Python制作Windows系统服务
2017/03/25 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
python爬取微信公众号文章的方法
2019/02/26 Python
10 行Python 代码实现 AI 目标检测技术【推荐】
2019/06/14 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
Python实现画图软件功能方法详解
2020/07/28 Python
Java程序开发中如何应用线程
2016/03/03 面试题
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
最热门的自我评价
2013/12/30 职场文书
2014财务年终工作总结
2014/12/08 职场文书
答谢词范文
2015/01/05 职场文书
个人自荐书怎么写
2015/03/26 职场文书
申请吧主发表的感言
2015/08/03 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
奶茶店的创业计划书该怎么写?
2019/07/15 职场文书
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS