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操作MySQL数据库具体方法
Oct 28 Python
你真的了解Python的random模块吗?
Dec 12 Python
Python 中的Selenium异常处理实例代码
May 03 Python
解决Tensorflow使用pip安装后没有model目录的问题
Jun 13 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
Python多线程获取返回值代码实例
Feb 17 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
jupyter修改文件名方式(TensorFlow)
Apr 21 Python
Python-for循环的内部机制
Jun 12 Python
python GUI模拟实现计算器
Jun 22 Python
Tensorflow全局设置可见GPU编号操作
Jun 30 Python
python实现KNN近邻算法
Dec 30 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
如何给phpadmin一个保护
2006/10/09 PHP
5.PHP的其他功能
2006/10/09 PHP
Yii框架调试心得--在页面输出执行sql语句
2014/12/25 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
JS在TextArea光标位置插入文字并实现移动光标到文字末尾
2013/06/21 Javascript
理解javascript回调函数
2014/12/28 Javascript
jquery表单对象属性过滤选择器实例分析
2015/05/18 Javascript
用Node.js通过sitemap.xml批量抓取美女图片
2015/05/28 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
基于JavaScript实现全屏透明遮罩div层锁屏效果
2016/01/26 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
PHP捕捉异常中断的方法
2016/10/24 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
详解vue-router 命名路由和命名视图
2018/06/01 Javascript
vue弹窗插件实战代码
2018/09/08 Javascript
详解Vue项目引入CreateJS的方法(亲测可用)
2019/05/30 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
使用layui前端框架弹出form表单以及提交的示例
2019/10/25 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
2020/09/04 Javascript
python 多进程通信模块的简单实现
2014/02/20 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python使用while循环花式打印乘法表
2019/01/28 Python
不到20行实现Python代码即可制作精美证件照
2020/04/24 Python
CSS3教程(9):设置RGB颜色
2009/04/02 HTML / CSS
水果花束:Fruit Bouquets
2017/12/20 全球购物
人事助理岗位职责
2013/11/18 职场文书
车间操作工岗位职责
2013/12/19 职场文书
社区工作者感言
2014/03/02 职场文书
会计专业导师推荐信
2014/03/08 职场文书
敬老院献爱心活动总结
2014/07/08 职场文书
煤矿百日安全活动总结
2015/05/07 职场文书
离婚起诉书范文2016
2015/11/26 职场文书