lambada表达式

lambda存在意义就是对简单函数的简洁表示。

#普通函数
def func(a):
    return a+1
print 'test1_func0:',func(1000)

#lambda表达式 
func = lambda a:a+1
lambada表达式_第1张图片
image.png

匿名函数格式的说明

函数名 = lambda 参数 :返回值

#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型

常见应用

1.map函数,我们使用map函数将会对列表中的所有元素进行操作。map有两个参数(函数,列表),它会在内部遍历列表中的每一个元素,执行传递过来的函数参数。在输出到新列表中。

li = [11, 22, 33]
new_list = map(lambda a: a + 100, li) 
# 输出:[111, 122, 133]


li = [11, 22, 33]
sl = [1, 2, 3]
new_list = map(lambda a, b: a + b, li, sl)
# 输出:[12, 24, 36]

2.reduce函数,对于序列内所有元素进行累计操作:

lst = [11,22,33]
func2 = reduce(lambda arg1,arg2:arg1+arg2,lst)
# 输出:func2: 66

3.filter函数,他可以根据条件对数据进行过滤:

li = [11, 22, 33]
new_list = filter(lambda arg: arg > 22, li)
# 输出:[33]

现有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

#答案一
test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)]
print(test(t1,t2))
#答案二
print(list(map(lambda t:{t[0]:t[1]},zip(t1,t2))))
#还可以这样写
print([{i:j} for i,j in zip(t1,t2)])

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