python lambda表达式

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之禅

你可能感兴趣的:(python lambda表达式)