python里lambda是什么_Python中lambda指的是什么
Python中lambda指的是什么
发布时间:2020-09-08 14:53:20
来源:亿速云
阅读:66
作者:小新
这篇文章将为大家详细讲解有关Python中lambda指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在学习python的过程中,lambda的语法时常会使人感到困惑,lambda是什么,为什么要使用lambda,是不是必须使用lambda?
下面就上面的问题进行一下解答。
lambda是什么?
看个例子:g = lambda x:x+1
看一下执行的结果:g(1)>>>2g(2)>>>3
当然,你也可以这样使用:lambda x:x+1(1)>>>2
可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:def g(x):2 return x+1
非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。
Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce:>>> foo = [2, 18, 9, 22, 17, 24, 8, 12, 27]
>>>>>> print filter(lambda x: x % 3 == 0, foo)
[18, 9, 24, 12, 27]>>> >>> print map(lambda x: x * 2 + 10, foo)
[14, 46, 28, 54, 44, 58, 26, 34, 64]
>>>>>> print reduce(lambda x, y: x + y, foo)139
上面例子中的map的作用,非常简单清晰。但是,Python是否非要使用lambda才能做到这样的简洁程度呢?在对象遍历处理方面,其实Python的for..in..if语法已经很强大,并且在易读上胜过了lambda。
比如上面map的例子,可以写成:print [x * 2 + 10 for x in foo]
非常的简洁,易懂。
filter的例子可以写成:print [x for x in foo if x % 3 == 0]
同样也是比lambda的方式更容易理解。
上面简要介绍了什么是lambda,下面介绍为什么使用lambda,看一个例子(来自apihelper.py):processFunc = collapse and (lambda s: " ".join(s.split())) or (lambda s: s)
在Visual Basic,你很有可能要创建一个函数,接受一个字符串参数和一个 collapse 参数,并使用 if语句确定是否压缩空白,然后再返回相应的值。这种方式是低效的,因为函数可能需要处理每一种可能的情况。每次你调用它,它将不得不在给出你所想要的东西之前,判断是否要压缩空白。在 Python 中,你可以将决策逻辑拿到函数外面,而定义一个裁减过的 lambda函数提供确切的 (唯一的) 你想要的。这种方式更为高效、更为优雅,而且很少引起那些令人讨厌 的错误。
通过此例子,我们发现,lambda的使用大量简化了代码,使代码简练清晰。但是值得注意的是,这会在一定程度上降低代码的可读性。如果不是非常熟悉python的人或许会对此感到不可理解。lambda 定义了一个匿名函数
lambda 并不会带来程序运行效率的提高,只会使代码更简洁。
如果可以使用for...in...if来完成的,坚决不用lambda。
如果使用lambda,lambda内不要包含循环,如果有,我宁愿定义函数来完成,使代码获得可重用性和更好的可读性。
总结:lambda 是为了减少单行函数的定义而存在的。
关于Python中lambda指的是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
python里lambda是什么_Python中lambda指的是什么相关推荐
- python中lambda()的用法_python中lambda()的用法
在C++11和C#中都有匿名函数的存在.下面看看在python中匿名函数的使用. 1.lambda只是一个表达式,函数体比def简单很多. 2.lambda的主体是一个表达式,而不是一个代码块.仅仅能 ...
- python里的join方法_python中join()方法介绍
描述 Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串. 语法 join()方法语法: str . join ( sequence ) 参数 sequence -- ...
- python wheel是什么意思_python中wheel指的是什么
python中wheel指的是什么 发布时间:2020-09-08 14:54:33 来源:亿速云 阅读:55 作者:小新 这篇文章给大家分享的是有关python中wheel指的是什么的内容.小编觉得 ...
- python里order什么意思_python中OrderedDict的使用方法详解
很多人认为python中的字典是无序的,因为它是按照hash来存储的,但是python中有个模块collections(英文,收集.集合),里面自带了一个子类 OrderedDict,实现了对字典对象 ...
- [转载] python里字典的用法_python中字典(Dictionary)用法实例详解
参考链接: Python字典dictionary copy方法 本文实例讲述了python中字典(Dictionary)用法.分享给大家供大家参考.具体分析如下: 字典(Dictionary)是一种映 ...
- python里none什么意思_python中stream=None什么意思?
这大概是函数定义/参数相关知识吧,这是默认/可选参数.如果你是看 Python 的官方文档,以 Python 3.7.7 版本为例子,路径是: Python 3.7.7 documentation & ...
- python里的符号区别_Python中的方括号和点符号有什么区别?
点运算符用于访问任何对象的属性.例如,复数>>> c = 3+4j 具有(除其他外)两个属性real和imag:>>> c.real 3.0 >>> ...
- python里什么叫子图_Python中的两个子图(matplotlib)
我想在 Python中创建两个子图(使用Anaconda 2.7),但我编写的代码生成两个图,两者都没有显示太多. 这是代码: import pandas as pd import pandas.io ...
- python里none什么意思_Python 中None的用法
python中通过试用None增加原始数组的维度,增加的维度取决于None出现的位置. 例如对于一维数组t而言 t = np.arange(5) t tn2 = t[:,None] tn1 = t[N ...
- python里数字怎么表示_Python 中的数字—Python 学习笔记
今天讲一下 Python 中六种标准数据类型之一:数字. 整数 整数可以执行加减乘除运算,+代表加法, -代表剪法, *代表乘法./代表除法, %代表求余数: >>> 1+2 3 & ...
最新文章
- Git 常用操作(5)- git clone/git checkout -b/git diff/git push/git pull
- 将ubuntu光盘作为安装源_[转载]Ubuntu 以光盘做为软件源
- Mysql中对table的操作问题
- springboot统一异常处理类及注解参数为数组的写法
- Java线程的状态转换
- 商城项目实战2-登录模块的实现
- 文件处理之解决使用 feof(c语言)或(fin.eof())出现多读问题
- vue vuex 挂载_vue.js,javascript_Vuex的初始化失败,一直显示没有挂载到根组件上,奇怪了!,vue.js,javascript - phpStudy...
- 苹果切换系统按哪个键_Mac如何切换系统?
- 在类库文件无法使用Server.MapPath
- 344.Reverse String
- Itil v3 process model
- matlab中idwt,matlab图片处理
- 关于VC6.0一些常见问题和解决方案
- VScode下载安装及使用教程
- java计算机毕业设计html5大众汽车网站MyBatis+系统+LW文档+源码+调试部署
- 读取xml文件转成ListT对象的两种方法
- nvidia驱动卸载与安装
- WebSestalt,好用的富集分析工具,介绍及使用教程
- C语言程序改错和标答不同,C语言程序设计试题及答案3