python之lambda
来源:互联网 发布:中国超级计算机知乎 编辑:程序博客网 时间:2024/05/16 12:56
1、lambda是什么?为什么要使用lambda?
lambda全称 “Lambda 表达式”(lambda expression)是一个匿名函数。
Lambda表达式基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。
举个例子:
g =lambdax:x+1
print g(1)
>>>2
可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体,用函数来表示为:
def g(x):
returnx+1
print g(1)
>>>2
非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。
Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce
filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence的类型)。
#过滤是否被3整除
foo = [2,18,9,22,17,24,8,12,27]
print filter(lambdax:x%3==0,foo)
>>>[18, 9, 24, 12, 27]
map(function, sequence) :对sequence中的item依次执行function(item),将执行结果function(item)组成一个List返回。
foo = [2,18,9,22,17,24,8,12,27]
print map(lambda x:x*2+10,foo)>>>[14, 46, 28, 54, 44, 58, 26, 34, 64]
reduce(function, sequence, starting_value):对sequence中的item顺序迭代调用function,如果有starting_value,还可以作为初始值调用。
foo = [2,18,9,22,17,24,8,12,27]
print reduce(lambdax,y:x+y,foo)
>>>139
lambda 定义了一个匿名函数
lambda 并不会带来程序运行效率的提高,只会使代码更简洁。
如果可以使用for...in...if来完成的,坚决不用lambda。
如果使用lambda,lambda内不要包含循环,如果有,我宁愿定义函数来完成,使代码获得可重用性和更好的可读性。
总结:lambda 是为了减少单行函数的定义而存在的。
- Lambda表达式之Python
- Python之lambda
- python之关于lambda
- Python之lambda
- python之lambda表达式
- python之lambda
- python基础知识之 lambda
- Python 高级特性之 lambda
- python之lambda简单示例
- Python 之 zip,map,lambda
- python之匿名函数lambda
- Python匿名函数之lambda表达式
- Python 函数式编程之lambda
- Python之filter、map、reduce、lambda
- python 之 lambda 表达式的基本用法
- 《笨方法学python-6》之lambda
- python学习之匿名函数lambda
- python细节之——lambda
- c# Json List<T> DataTable 数据相互转换
- 其他
- KVC赋值
- linux常用命令
- opencv 三种图像摸糊处理
- python之lambda
- Jsp 出现异常IllegalArgumentException:Control character in cookie value or attribute解决方法
- springmvc+jpa+hibernate 日志打印
- JS Cookie 保存用户名及密码
- js自定义log
- hdu1312 Red and Black
- UI 一一 基本控件认识
- POJ 1990 MooFest (树状数组)
- 开始写博客了