Python编程之lambda表达式

lambda表达式

首先先接触一下:


def p(x, y):
    return x*y

p = lambda x, y : x*y
print p(4, 5)
>>>20

Lambda表达式,通常是在需要一个函数,又不想去命名一个函数,也就是指匿名函数。使用lambda表示的匿名函数应该是简单的,如果过于复杂最好定义函数

1. 应用在函数式编程中

Python提供了很多函数式编程的特性,map,reduce,filter,sorted等这些函数都支持函数作为参数输入,lambad函数就可以应用在函数编程中。

#将列表中的元素按照绝对值大小进行升序排列
Python 2.7.10 (default, Feb  7 2017, 00:08:15)
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> list1 = [3,4,-6,2]
>>> sorted(list1, key=lambda x:abs(x))
[2, 3, 4, -6]
>>> p = lambda x:x[1]
>>> p(list1)
4
>>>
>>>

2. 应用在闭包中

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,函数方法实现比较啰嗦

参考链接:
https://www.cnblogs.com/hf8051/p/8085424.html

猜你喜欢

转载自blog.csdn.net/lovegengxin/article/details/80353542
今日推荐