匿名函数lambda和map、filter、reduce函数

函数递归:

在函数内部,可以调用其他函数,如果一个函数在内部调用自己,这个函数就是递归函数,简单来讲,在内部自己调用自己,可以想到会死循环,那么就会报错,所以一定要有一个明确的终止条件 return

匿名函数:lambda

lambda函数: 不用加return 自动会return,匿名函数真正意义上是没有函数名字的,实际上它只是和其他
函数并存使用,不做单独使用。它不适合做复杂的处理逻辑,像 if 判断等,只适合作为一行来表示处理逻辑。
下面只是作为演示理解,演示单独使用
举例:lambda x : x+1
lambda表示匿名函数关键字; x 表示形参;  x+1 表示处理逻辑(表达式)

那么如果调用呢?
要给lambda 附加一个名字,不然只能打印出lambda的内存地址

例如:v1=lambda x : x+1
v1(10) 或者print(v1(10))  打印结果为:11

map函数: 处理序列中的每个元素,得到的结果是个列表,位置与原来一样;
例如:求一个列表中元素的平方:
a=[2,3,4,5,6,7]
print(list(map(lambda x:x**2, a)))

filter 函数

filter函数:遍历序列中的每个元素,判断每个元素得到布尔值,如果是Ture留下来
例如:a = ['sb_zhangsan', 'sb_lisi', 'wangwu_sb', 'liliu_sb']
print(list(filter(lambda n n,endswith('sb', a))))

reduce 函数

这个函数需要先从模块导入:from functools import reduce
功能是合并,把列表内容相加,
例如:
l = [1,2,3,4]
v1=reduce(lambda x,y:x+y,l)
print(v1) 打印结果为10

也可以定义任意一个初始值,例如:定义一个6
l = [1,2,3,4]
v1=reduce(lambda x,y:x+y,l,6)
print(v1)
打印结果为:16

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。