今天学习python里面的高阶函数map(f , list)的时候看见这样一行代码
print map( lambda x: x%3, range(6))
我已经知道:map函数的首个参数是一个函数,后面的一个或者多个list or tuple作为第一个参数(也就是那个函数)的参数,以map的方式遍历执行,并返回一个list or tuple.
然而lambada又是什么?
我好奇的查了一下资料,原来lambda是一个匿名函数,用来简化内容简单的函数的声明,比如:
1 g = lambda x:x+1
看一下执行的结果:
g(1)
>>>2
g(2)
>>>3
当然,你也可以这样使用:
lambda x:x+1(1)
>>>2
可以这样认为:lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数返回值,用函数来表示为:
1 def g(x):
2 return x+1
非常容易理解,在这里lambda简化了函数定义的书写形式。是代码更为简洁,但是使用函数的定义方式更为直观,易理解。
Python中,也有几个定义好的全局函数方便使用的,filter, map, reduce