python中的lambda表达
C++中的lambda表达式与C++11增加标准库,是一个简短的匿名的可调用对象,编译器会将其转化为一个匿名类的对象。lambda表达式的最大特点就是简短灵活。调用方便。它不须要处理非常复杂的逻辑。通常仅仅包括一两句简短的代码。
python作为一种优雅简洁的脚本语言自然不会错过这样的机制。python中的lambda表达式形式例如以下:
lambda 參数列表 : 表达式
假设没有须要传递的參数,參数类表能够为空了,但表达式部分不能为空,由于lambda表达式必须有返回值。
lambda表达式会返回一个值,这个值能够是一个计算结果。也能够是一个新的lambda表达式
返回一个值:
>>> f = lambda x,y : x+y //创建一个lambda表达式
>>> print f(1, 2) //调用lambda表达式
3
返回一个新的lambda表达式:
>>> f = lambda x : lambda y : x+y //嵌套的lambda表达式
>>> a = f(1) //f(1)返回一个lambda表达式
>>> b = a(10)
>>> print b
11
以下看看常常与lambda表达式一起使用的三个python内建函数:filter,map,reduce
1、filter(bool_func,seq):遍历列表seq中的每一个元素,传入返回值为bool类型的函数bool_func中,从列表中过滤出函数返回值为true的元素,得到一个新的列表
<span style="font-size:10px;">>>> filter(lambda x : x > 3, [1, 2, 3, 4, 5])
[4, 5]</span>
2、map(func,seq1[,seq2...]):将列表通过func函数映射为一个新的列表
>>> map(lambda x : x*2, [1, 2, [3, 4]])
[2, 4, [3, 4, 3, 4]]
3、reduce(func,seq[,init]):这里的func函数接受两个參数,reduce依次从seq中取一个元素传入func函数。还有一个參数是上一次func函数的返回值。第三个參数为可选參数,假设指定了init,则開始时将init和seq中的第一个元素传给func;假设没有指定。则開始时取seq的头两个元素给func。
<span style="font-size:10px;">>>> reduce(lambda x,y : x + y,[1,2,3,4])
10
>>> reduce(lambda x,y : x + y,[1,2,3,4],10)
20 </span>
python中的lambda表达的更多相关文章
- 【转】python中的lambda函数
http://www.cnblogs.com/coderzh/archive/2010/04/30/python-cookbook-lambda.html lambda函数也叫匿名函数,即,函数没有具 ...
- 在Python中使用lambda高效操作列表的教程
在Python中使用lambda高效操作列表的教程 这篇文章主要介绍了在Python中使用lambda高效操作列表的教程,结合了包括map.filter.reduce.sorted等函数,需要的朋友可 ...
- 关于Python中的lambda
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- Python中的lambda函数介绍
Lambda函数,即Lambda 表达式(lambda expression),是一个匿名函数(不存在函数名的函数),Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lam ...
- 转:关于Python中的lambda,这篇阅读量10万+的文章可能是你见过的最完整的讲解
lambda是Python编程语言中使用频率较高的一个关键字.那么,什么是lambda?它有哪些用法?网上的文章汗牛充栋,可是把这个讲透的文章却不多.这里,我们通过阅读各方资料,总结了关于Python ...
- python中的lambda知多少!
python允许使用lambda关键字创造匿名函数,匿名函数是因为不需要以标准的方式来声明,比如说,使用def语句.(除非赋值给一个局部变量,这样的对象也不会再任何的名字空间内创建名字)然而,作为函数 ...
- python中的lambda表达式
lambda是python中匿名函数的写法 我们可以在不定义函数名的情况下一边定义并调用这个函数 例子: 普通方法定义函数:def plus(a,b): return a+b lambda方法 ...
- python 中: lambda
lambda 定义了一个匿名函数,是代码更简洁 lambda x:x+1和def g(x): return x+1是相同的哦. python 中的map,filter, reduce 函数为序列内置函 ...
- Python中的lambda的简单介绍
在学习python的过程中,lambda的语法经常出现,现在将它整理一下,以备日后查看. 1.lambda是什么? 举个例子如下: func=lambda x:x+1 print(func(1)) p ...
随机推荐
- 实现js的类似alert效果的函数
这个简单的类似alert的函数,效果还行,至于css样式,那没的说了,笔者确实尽力了,如果读者觉得太烂,你可以随便改函数的样式的,反正,笔者觉得还可以,呵呵. <!DOCTYPE html PU ...
- iOS 推荐博客
著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处.作者:Franz Fang链接:http://www.zhihu.com/question/20264108/answer/3026 ...
- 支付宝Demo 报错
支付宝SDK-------DEMO第一次编译肯定是会报错的: 修正的方法为: 打开项目属性->Build Settings 找到 Library SearchPaths 看见里面的参数了 ...
- C#在声明对象时对其赋值的一种方式
今天学会一种更方便的赋值方式,如下, 同时存档一个通过 打开对话框 获取地址的方式. private string GetSaveAsPathXls(string defaultFileName) { ...
- delphi xe5 android 开发数据访问手机端(一)
上几片文章我们把供手机端调用的web服务完成,接下来实现手机端调用webservices获取数据 1.新建firemonkey mobile application 2.选择blank applica ...
- 【POJ 1830】 开关问题 (高斯消元)
开关问题 Description 有N个相同的开关,每个开关都与某些开关有着联系,每当你打开或者关闭某个开关的时候,其他的与此开关相关联的开关也会相应地发生变化,即这些相联系的开关的状态如果原来为 ...
- how to uninstall devkit
http://www.uninstallapp.com/article/How-to-uninstall-Perl-Dev-Kit-PDK-8.0.1.289861.html PerfectUnins ...
- CH Round #45 能量释放
能量释放 CH Round #45 - alan有一些陷阱 III 题目描述 alan得到一块由个能量晶体构成的矿石,对于矿石中的每一个能量晶体,如果用化学物质刺激某一个能量晶体,就能使它释放能量. ...
- smoke kde binding
1.git下来smokegen.smokeqt,qtruby2.安装qt4.8.5,ruby1.9.13.cmake,先smokegen,设置些环境变量参数之类的,一直下来应该没问题,all buil ...
- ♫【网站优化】Reflow / Repaint
web移动开发最佳实践之js篇 浏览器的回流与重绘 by 张盛志 DOM性能瓶颈与Javascript性能优化 浏览器的渲染原理简介 其中一个跟浏览器有关的原因,那就是浏览器需要花时间.花精力去渲染. ...