详解python中的lambda函数
什么是lambda?
lambda是Python中预留的一个关键词,当我们需要一个函数,而又不想重新去为函数命名时,我们就可以使用lambda关键词来简单的去定义一个函数,也就是所谓的匿名函数,它在我们的编程过程中会出现很多次。
lambda函数的语法
在Python中,我们可以这样定义一个lambda函数,它的语法格式为:
lambda argument_list: expression
- argument_list是参数列表,也就是函数所用到的参数
- expression是关于参数的表达式,表达式中的参数需要在参数列表中有定义
这里我们需要注意,参数列表argument_list与表达式expression之间要用":"隔开,并且lambda函数具有输入和输出,它的输入就是传入到参数列表argument_list的值,输出是根据表达式expression计算得到的结果(等效于return)。
lambda函数的用法
将lambda函数赋值给变量,通过变量间接调用lambda函数
例如我们定义一个lambda函数,并将其赋值给变量a,就能直接用变量a调用lambda函数>>> a=lambda x:x+3 >>> a(5) 8
将lambda函数作为其他函数的返回值
lambda函数作为其他函数的返回值时,此时lambda函数实际为函数的内嵌函数>>>def test(n): ...return lambda x:x+n >>>t=test(3) >>>t(2) 5
lambda函数作为test函数的内部函数,能够访问外部函数的变量n,就形成了所谓的闭包,这里不作进一步阐述
将lambda函数作为其他函数的参数
利用lambda函数我们可以实现对函数编程,即把lambda函数当做参数传递给其他函数,例如map()函数,map()函数会根据提供的函数对指定序列做映射,这里以一个阿里面试题为例:用一行代码实现对a=[1,2,3,4,5]的偶数位置的元素进行加3后求和
我们可以利用定义lambda函数,然后把它当作参数传递给map()函数,就可以返回对偶数位置的映射,然后对其求和>>> a=[1,2,3,4,5] >>> map(lambda x:x+3,a[1::2]) >>> print(list(map(lambda x:x+3,a[1::2]))) [5, 7] >>> sum(map(lambda x:x+3,a[1::2])) 12
与map()函数类似的内置函数还有filter()、reduce()、sorted()等。
>>> filter(lambda x: x % 3 == 0,[1,2,3,4,5,6,7,8,9])>[3, 6, 9]
>>> from functools import reduce >>> reduce(lambda x,y: x+y,[1,2,3,4,5]) 15
>>> sorted([0,-3,2,-9,7,4,-1],key=lambda x: abs(x)) [0, -1, 2, -3, 4, 7, -9]
总结
python鼓励我们利用lambda写一些简单的函数,lambda函数可以使我们的代码更加紧凑,并且不用担心命名冲突。但语法格式决定lambda只能是一个表达式,而不是一个代码块,因此不能实现复杂的逻辑(不能写条件分支语句和异常处理等)。
详解python中的lambda函数相关推荐
- python join_详解Python中的join()函数的用法
函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符) ...
- python中index函数_详解python中的index函数用法
1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...
- python中怎么做分组问题_详解Python中的分组函数groupby和itertools)
具体代码如下所示: from operator import itemgetter #itemgetter用来去dict中的key,省去了使用lambda函数 from itertools impor ...
- python中index方法详解_详解python中的index函数用法
1.函数的创建 def fun(): #定义 print('hellow') #函数的执行代码 retrun 1 #返回值 fun() #执行函数 2.函数的参数 普通参数 :要按照顺序输入参数 de ...
- 【Kay】详解Python中的random()函数
1.python中的random函数 random() 方法返回随机生成[0,1)范围内的一个实数 randint(a,b)方法随机生成a到b范围内的一个整数 randrange(a,b,c)方法生成 ...
- python 中split函数的应用_举例详解Python中的split()函数的使用方法
函数:split() python中有split()和os.path.split()两个函数,具体作用如下: split():拆分字符串.通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(li ...
- python语句join_详解Python中的join()函数的用法
原博文 2017-08-07 20:51 − 函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字 ...
- 详解Python中的join()函数的用法(字符串和os.path)
函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔 ...
- 详解python中的round()函数
round() round()是python自带的一个函数,用于数字的四舍五入. 使用方法(环境python3) round(number,digits) 参数: digits>0,四舍五入到指 ...
最新文章
- java response返回xml_Spring 返回Xml格式
- Facebook最新Libra币开发指南---接口服务器开发2
- PMCAFF微课堂 | 运营女神揭秘产品运营推广中的场景思维
- 使用MFC进行编程,绘制直线椭圆以及样条曲线
- iframe子页面内刷新父页面中另一个iframe子页面
- 哈佛大学刘小乐教授讲授的计算生物学和生物信息学导论 (2020 视频+资料)
- CoordinatorLayout 使用综述系列(二)与AppBarLayout结合上下联动效果
- avs v7.0 php,AVS v7.0 – PHP在线视频上传分享程序
- iQOO Neo6现身安兔兔数据库:高导热稀土散热加入 跑分轻松破百万
- Caffe学习:pycaffe利用caffemodel进行分类=批处理
- 5款最好用的前端开发工具
- React.js小书结合官方文档第一部分笔记
- Python网络爬虫简单入门
- 测度论与概率论基础学习笔记7——3.1积分的定义
- SPSS如何进行Cox回归分析操作
- png在ai转为路径_png格式转为ai格式
- c语言常用延时程序,新手常用单片机延时程序
- 微信小程序| Ngork内网传统+后台API通信例子
- delete、truncate 、Drop删除表的区别
- CClientDC类
热门文章
- 图片怎么加水印?建议收藏这些方法
- S7200通过BCNet-S7200Plus和SMART200 PLC数据交换
- webpack5升级踩坑(process、Buffer is not defined)
- 普鸥知识产权|美国外观设计专利 侵权判定?
- 大三不努力,大四徒伤悲 No.151
- 风靡全球,TikTok会是下一个跨境电商巨头吗?怎么申请Tik Tok-MCN呢?(内附详细步骤)
- S7-200smart远程无线模拟量信号采集案例
- 秋大android 6.0root,小米Note刷机包 基于MINote-MIUI6_6.6.2.0稳定版深度定制 自动ROOT 丝般顺滑 超级...
- d3d11的转换-两个立方体发生旋转
- HTTP协议请求类型