lambda是个啥子玩意以前玩其他语言都没看到
讲一哈子哈
lambda是啥子:
是一个函数,你懒得专门起名定义一个函数的时候可以用这哥们,这哥们道上黑化就叫“匿名函数”
举个栗子
add = lambda x, y : x+y
add(1,2) # 结果为3
lambda的应用:
1.应用在函数式编程中
Python提供了很多函数式编程的特性,如:map、reduce、filter、sorted等这些函数都支持函数作为参数,lambda函数就可以应用在函数式编程中。如下:
栗子:
# 需求:将列表中的元素按照绝对值大小进行升序排列
list1 = [3,5,-4,-1,0,-2,-6]
sorted(list1, key=lambda x: abs(x))
当然,也可以如下:
list1 = [3,5,-4,-1,0,-2,-6]
def get_abs(x):
return abs(x)
sorted(list1,key=get_abs)
只不过这种方式的代码看起来不够Pythonic
2.应用在闭包中
栗子1:
def get_y(a,b):
return lambda x:ax+b
y1 = get_y(1,1)
y1(1) # 结果为2
当然,也可以用常规函数实现闭包,如下:
def get_y(a,b):
def func(x):
return ax+b
return func
y1 = get_y(1,1)
y1(1) # 结果为2
Explicit is better than implicit(明了胜于晦涩)
———— Python之禅