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 自动提交和抓取网页
Jul 13 Python
java直接调用python脚本的例子
Feb 16 Python
Python实现处理管道的方法
Jun 04 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
Jul 04 Python
Python 3中print函数的使用方法总结
Aug 08 Python
使用Python+Splinter自动刷新抢12306火车票
Jan 03 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
Python tkinter的grid布局及Text动态显示方法
Oct 11 Python
flask框架配置mysql数据库操作详解
Nov 29 Python
Scrapy项目实战之爬取某社区用户详情
Sep 17 Python
Python OpenCV超详细讲解调整大小与图像操作的实现
Apr 02 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
使用php来实现网络服务
2009/09/15 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP扩展迁移为PHP7扩展兼容性问题记录
2016/02/15 PHP
php语言的7种基本的排序方法
2020/12/28 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
javascript 面向对象的JavaScript类
2010/05/04 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
2011/04/19 Javascript
基于JQuery 滑动与动画的说明介绍
2013/04/18 Javascript
json数据处理技巧(字段带空格、增加字段、排序等等)
2013/06/14 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
jQuery实现磁力图片跟随效果完整示例
2016/09/16 Javascript
详解AngularJS用Interceptors来统一处理HTTP请求和响应
2017/06/08 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
深入理解移动前端开发之viewport
2018/10/19 Javascript
jQuery实现的中英文切换功能示例
2019/01/11 jQuery
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
python去除字符串中的换行符
2017/10/11 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Html5新标签解释及用法
2012/02/17 HTML / CSS
KIKO MILANO俄罗斯官网:意大利领先的化妆品和护肤品品牌
2021/01/09 全球购物
存储过程和sql语句的优缺点
2014/07/02 面试题
普通院校学生的自荐信
2013/11/27 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
高中校园广播稿
2014/10/21 职场文书
施工单位工程部经理岗位职责
2015/04/09 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
我的暑假生活作文(五年级)范文
2019/08/07 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
浅谈Python numpy创建空数组的问题
2021/05/25 Python
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers
Mysql中的触发器定义及语法介绍
2022/06/25 MySQL