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