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正则表达式介绍
Aug 06 Python
python数据清洗系列之字符串处理详解
Feb 12 Python
Python实现迭代时使用索引的方法示例
Jun 05 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
详解Django-restframework 之频率源码分析
Feb 27 Python
使用Python操作FTP实现上传和下载的方法
Apr 01 Python
Python中常用的8种字符串操作方法
May 06 Python
详解Python中的各种转义符\n\r\t
Jul 10 Python
python 实现识别图片上的数字
Jul 30 Python
用python拟合等角螺线的实现示例
Dec 27 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
python绘制汉诺塔
Mar 01 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
一个可以找出源代码中所有中文的工具
2006/10/25 PHP
php中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
php生成短网址示例
2014/05/05 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
JQuery Tips(4) 一些关于提高JQuery性能的Tips
2009/12/19 Javascript
JQuery 确定css方框模型(盒模型Box Model)
2010/01/22 Javascript
JQuery 插件模板 制作jquery插件的朋友可以参考下
2010/03/17 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
判断JS对象是否拥有某种属性的两种方式
2013/12/02 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
JQuery中的事件及动画用法实例
2015/01/26 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
javascript Array 数组常用方法
2015/04/05 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
JS采用绝对定位实现回到顶部效果完整实例
2016/06/20 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
深入了解Vue3模板编译原理
2020/11/19 Vue.js
[01:58]2018DOTA2亚洲邀请赛趣味视频——交流
2018/04/03 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
python字典多条件排序方法实例
2014/06/30 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Python使用Django实现博客系统完整版
2020/09/29 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
2019/12/18 Python
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
经济管理专业毕业生推荐信
2013/11/11 职场文书
珠宝的促销活动方案
2014/08/31 职场文书
大学生党性分析材料
2014/12/19 职场文书
北大自主招生自荐信
2015/03/04 职场文书
追讨欠款律师函
2015/05/27 职场文书
贫困证明书范文
2015/06/16 职场文书