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 sqlobject(mysql)中文乱码解决方法
Nov 14 Python
Python输出9*9乘法表的方法
May 25 Python
Python中类的初始化特殊方法
Dec 01 Python
Python中单例模式总结
Feb 20 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
python最长回文串算法
Jun 04 Python
python实现飞机大战小游戏
Nov 08 Python
TensorFlow 显存使用机制详解
Feb 03 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
python中os.remove()用法及注意事项
Jan 31 Python
python中如何对多变量连续赋值
Jun 03 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
奉献出一个封装的curl函数 便于调用(抓数据专用)
2013/07/22 PHP
PHP中的reflection反射机制测试例子
2014/08/05 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP实现的AES加密、解密封装类与用法示例
2018/08/02 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
js DOM的学习笔记
2011/12/22 Javascript
js图片延迟技术一般的思路与示例
2014/03/20 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
基于jQuery实现选取月份插件附源码下载
2015/12/28 Javascript
JS密码生成与强度检测完整实例(附demo源码下载)
2016/04/06 Javascript
jQuery基于ID调用指定iframe页面内的方法
2016/07/06 Javascript
利用JavaScript阻止表单提交的两种方法
2016/08/11 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
JavaScript数据结构之单链表和循环链表
2017/11/28 Javascript
解析Vue 2.5的Diff算法
2017/11/28 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
微信小程序实现简单跑马灯效果
2020/05/26 Javascript
Python找出文件中使用率最高的汉字实例详解
2015/06/03 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
python实现图片压缩代码实例
2019/08/12 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
pycharm 实现光标快速移动到括号外或行尾的操作
2021/02/05 Python
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
世界地球日活动总结
2015/02/09 职场文书
安全第一课观后感
2015/06/18 职场文书
导游词之韩国济州岛
2019/10/28 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书