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实现从一组颜色中找出与给定颜色最接近颜色的方法
Mar 19 Python
python 转换 Javascript %u 字符串为python unicode的代码
Sep 06 Python
python爬虫的工作原理
Mar 05 Python
深入理解Python3中的http.client模块
Mar 29 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
May 30 Python
详解多线程Django程序耗尽数据库连接的问题
Oct 08 Python
Python使用pandas对数据进行差分运算的方法
Dec 22 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
实例讲解Python 迭代器与生成器
Jul 08 Python
Python判断远程服务器上Excel文件是否被人打开的方法
Jul 13 Python
深入浅析Django MTV模式
Sep 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
多文件上传的例子
2006/10/09 PHP
PHP 引用是个坏习惯
2010/03/12 PHP
使用php统计字符串中中英文字符的个数
2013/06/23 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
jQuery+ajax中getJSON() 用法实例
2014/12/22 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
JS 实现 ajax 异步浏览器兼容问题
2017/01/21 Javascript
Javascript实现登录记住用户名和密码功能
2017/03/22 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
微信小程序实现皮肤功能(夜间模式)
2017/06/18 Javascript
JS数组操作中的经典算法实例讲解
2017/07/26 Javascript
详细分析单线程JS执行问题
2017/11/22 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
2019/11/01 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
关于IDEA中的.VUE文件报错 Export declarations are not supported by current JavaScript version
2020/10/17 Javascript
Python语言技巧之三元运算符使用介绍
2013/03/04 Python
Python数据类型详解(四)字典:dict
2016/05/12 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
在Python中构建增广矩阵的实现方法
2019/07/01 Python
Python实现最大子序和的方法示例
2019/07/05 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
Python实现socket非阻塞通讯功能示例
2019/11/06 Python
logging level级别介绍
2020/02/21 Python
python和go语言的区别是什么
2020/07/20 Python
2分钟教你实现环形/扇形菜单(基础版)
2020/01/15 HTML / CSS
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
大专生简历的自我评价
2013/11/26 职场文书
区优秀教师事迹材料
2014/02/10 职场文书
运动会5000米加油稿
2015/07/21 职场文书
2016年寒假政治学习心得体会
2015/10/09 职场文书
2016年党员创先争优公开承诺书
2016/03/25 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技