python lambda的使用详解


Posted in Python onFebruary 26, 2021

1. lambda语法

     lambda argument_list: expression

     lambda是Python预留的关键字,argument_list(参数列表)和expression(关于参数的表达式)由用户自定义。

2. lambda使用简单示例

  • lambda x, y: x*y;函数输入是x和y,输出是它们的积x*y
  • lambda:None;函数没有输入参数,输出是None
  • lambda *args: sum(args); 输入是任意个数的参数,输出是它们的和(隐性要求是输入参数必须能够进行加法运算)
  • lambda **kwargs: 1;输入是任意键值对参数,输出是1

3. lambda的四个用法

  • 将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数
add = lambda x, y:x+y
add(1,2)
>>>3
  • 将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换(我还不懂这个的意思)

例如,为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:time.sleep=lambda x:None。这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。例如,执行time.sleep(3)时,程序不会休眠3秒钟,而是什么都不做。

  • 将lambda函数作为其他函数的返回值,返回给调用者

函数的返回值也可以是函数。例如return lambda x, y: x+y返回一个加法函数。这时,lambda函数实际上是定义在某个函数内部的函数,称之为嵌套函数,或者内部函数。对应的,将包含嵌套函数的函数称之为外部函数。内部函数能够访问外部函数的局部变量,这个特性是闭包(Closure)编程的基础。

  • 将lambda函数作为参数传递给其他函数

部分Python内置函数接收函数作为参数。典型的此类内置函数有这些。

(1)filter函数。此时lambda函数用于指定过滤列表元素的条件。例如filter(lambda x: x % 3 == 0, [1, 2, 3])指定将列表[1,2,3]中能够被3整除的元素过滤出来,其结果是[3]。

(2)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]。

(3)map函数。此时lambda函数用于指定对列表中每一个元素的共同操作。例如map(lambda x: x+1, [1, 2,3])将列表[1, 2, 3]中的元素分别加1,其结果[2, 3, 4]。

(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库函数也接收函数作为参数,例如gevent的spawn函数。此时,lambda函数也能够作为参数传入。

以上就是python lambda的使用详解的详细内容,更多关于python lambda的使用的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python爬虫模拟登录带验证码网站
Jan 22 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
Python 实现引用其他.py文件中的类和类的方法
Apr 29 Python
python3调用百度翻译API实现实时翻译
Aug 16 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
Apr 29 Python
通过实例简单了解Python中yield的作用
Dec 11 Python
详解Python 重学requests发起请求的基本方式
Feb 07 Python
Django用户身份验证完成示例代码
Apr 03 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
Python执行时间的几种计算方法
Jul 31 Python
Python3使用Selenium获取session和token方法详解
Feb 16 Python
Django实现在线无水印抖音视频下载(附源码及地址)
May 06 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 #Python
详解Python openpyxl库的基本应用
Feb 26 #Python
解决python的空格和tab混淆而报错的问题
Feb 26 #Python
Python Spyder 调出缩进对齐线的操作
Feb 26 #Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
Feb 26 #Python
Python plt 利用subplot 实现在一张画布同时画多张图
Feb 26 #Python
Python xlwings插入Excel图片的实现方法
Feb 26 #Python
You might like
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
PHP产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
[原创]图片分页查看
2006/08/28 Javascript
LazyForm jQuery plugin 定制您的CheckBox Radio和Select
2009/10/24 Javascript
Visual Studio中的jQuery智能提示设置方法
2010/03/27 Javascript
jQuery学习笔记之jQuery的DOM操作
2010/12/22 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
刷新页面的几种方法小结(JS,ASP.NET)
2014/01/07 Javascript
NodeJS学习笔记之Connect中间件应用实例
2015/01/27 NodeJs
jQuery超简单选项卡完整实例
2015/09/26 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
vue+iview 兼容IE11浏览器的实现方法
2019/01/07 Javascript
使用 Element UI Table 的 slot-scope方法
2019/10/10 Javascript
JQuery绑定事件四种实现方法解析
2020/12/02 jQuery
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python模拟登陆实现代码
2017/06/14 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
在PyCharm中安装PaddlePaddle的方法
2021/02/05 Python
解决virtualenv -p python3 venv报错的问题
2021/02/05 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
主持人婚宴答谢词
2014/01/28 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
工作决心书范文
2014/03/11 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
治安消防安全责任书
2014/07/23 职场文书
晋江市委常委班子四风问题整改工作方案
2014/10/26 职场文书
群众路线学习心得体会范文
2014/11/05 职场文书
教师听课评语大全
2014/12/31 职场文书
工作态度检讨书范文
2015/05/06 职场文书
用javascript制作qq注册动态页面
2021/04/14 Javascript