python中使用lambda表达式,主要作用是为了节省定义函数名称
- 需要定义一个函数,但是有没必要写一个function
- 只需要定义一个变量去接收,不需要return
用法说明
def test(a, b):
return a + b
print test(1, 2) # 得到结果3
test1 = lambda a, b: a + b
print test1(1, 2)# 得到结果3
# 也可以这样写
a, b = 1, 2
test1 = lambda a, b: a + b, a, b
print test1 # 得到结果3
简单来说lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去
一些常用用法
- 可以用来嵌套使用(简单闭包)
a = (lambda x: (lambda y: x + y))
b = a(10)
print b(5) # 15
- 可以作为一些高阶函数的参数,map为例
c = [1, 2, 3]
res = map(lambda x: x*2, c) # 得到结果[2, 4, 6]
- 他可以作为变量使用(这个就有点骚了)
def_dict = {
"def_a": lambda: 2 + 2,
"def_b": lambda: 3 + 3,
"def_c": lambda: 4 + 4,
}
print def_dict["def_a"]() # 4