Lambda表达式是Python中一类特殊的定义函数的形式,使用它可以定义一个匿名函数。也就是说,匿名函数本质上就是一个函数,它所抽象出来的东西是一组运算。
问题来了,lambda既然也是函数,什么时候使用lambda表达式,什么时候使用def定义函数呢?
我的理解是当函数只需要做一件(有关运算的)事情,且函数名称无关紧要时,可选择lambda。
接下来看map() 函数,它可以将一个函数映射到一个可枚举类型上面。格式为:
map(函数, 可枚举的类型) #将函数 依次套用在每一个元素上面
实例:
x = [1,2,3]
def add1(number):
return number+1
#for循环
for item in x:
print(add1(item))
#列表推导
print([add1(n) for n in x])
#map和lambda表达式
print(map(lambda n: n+1, x)
参考链接:
- 知乎吴涛对lambda、map的解释
https://www.zhihu.com/question/20125256
- 列表推导来自NovemberEleven的博客
http://www.cnblogs.com/skyhacker/archive/2012/01/27/2330288.html