lambda简介

条件运算时,对于简单的if else 语句,可以使用三元运算来表示,即:

# 普通条件语句
if 1==1:
  name = 'angus'
else:
  name = 'anna'
# 三次元运算
name = 'angus' if 1==1 else 'anna'

对于简单的函数,也存在一种简便的表示方式,即:lambda 表达式

# *****************普通函数*****************
# 定义函数(普通方式)
def func(arg):
  	return arg + 1
# 执行函数
result = func(123)

# *******************lambda*****************
#定义函数(lambda表达式)
my_lambda = lambda arg: arg + 1
# 执行函数
result = my_lambda(123)

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

内置函数与lambda

一、map

遍历序列,对序列中每个元素进行操作,最终获取新的序列。

img
# 示例1
li = [11, 22, 33]
new_list = map(lambda a : a + 100, li)
# 示例2
li = [11, 22, 33]
s1 = [1, 2, 3]
new_list = map(lambda a, b : a + b, li, s1)

二、filter

对于序列中的元素进行筛选,最终获取符合条件的序列

img
li = [11, 22, 33]
new_list = filter(lambda arg: arg > 22, li)
#filter第一个参数为空,将获取原来序列

三、reduce

对于序列内所有元素进行累计操作

img
img
li = [11, 22, 33]
result = reduce(lambda arg1, arg2: arg1 + arg2, li)
# reduce的第一个参数,函数必须要有两个参数
# reduce的第二个参数,要循环的序列
# reduce的第三个参数,初始值