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