递归函数
在一个函数体的内部,调用函数本身,就被称为递归函数
# def fun(n):
# if n==1 or n==2:
# return 1
# else:
# return fun(n-1)+fun(n-2)
#
# print(fun(10))
匿名函数(lambda)
-
格式
lambda para1,para2,...,paran:expression using paras f=lambda x='asd',b='adad',a='asa':x+b+a print(f(1,2,3)) print(f())
-
lambda定义的是单行函数,如果需要复杂的函数,应该定义普通函数
-
lambda参数列表可以包含多个参数,如 lambda x, y: x + y
-
lambda中的表达式不能含有命令,而且只限一条表达式
高阶函数
def aff(a,b,c):
return c(a)+c(b)
a_value=aff(-9,1,abs)
a_value1=aff(10,1,fun)
print(a_value)
print(a_value1)
filter函数
f1=filter(lambda sr: not sr.endswith('a'),li)
print(list(f1))
功能:
- 过滤掉序列中不符合函数条件的元素。当序列中需要保留的元素可以用某些函数描述时,就应该想到filter函数
调用格式:
-
filter(function,sequence) function--->可以是自定义的函数,也可以是匿名函数 sequence--->列表,元组,字符串
map 映射
- 求一个序列或者多个序列进行函数映射后的值。(用list()强转)
格式
-
map(function,iterable1,iterable2)
-
function 的参数可以不止一个
-
iterable1,iterable2 就是传入function的参数
-
reduce函数
- 对一个序列进行压缩运算,得到一个value
- python1
- 格式
- reduce(function,iterable1,(terable0)
- function必须要传入俩个参数
- Iterable—>列表,元组
apply
功能
- pandas 中,应用对象是pandas中的DataFrame或者Series
- 直接对DataFram或者Series应用函数
zip
功能
- 将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,返回由这些元组构成的对象