python中常用的高阶函数:map( )、reduce( )、filter( )、sorted( )
map(function,Iterable)
返回值 返回的对象,放到一个新的迭代器中
def func(a,b):
return a*b
ret=map(func,[1,2,3,4,5],[1,2,3,4,5,6]) 以最少的Iterable 为准
print(list(ret))
输出结果: [1,4,9,16,25]
reduce(fanction,Iterable)
返回值 返回计算结果
from functools import redunce
ret=reduce(lambda a,b:a+b,[1,2,3,4,5])
print(ret)
输出结果:15
filter(function,Iterable)
返回值 返回一个迭代器(进行判断,将True的元素放入迭代器中)
def func(n):
return n%2==0
ret=filter(func,range(1,11))
print(list(ret))
输出结果 [2,4,6,8,10]
sorted(Iterable,key=abs,reverse=False)
(绝对值函数)
返回值 返回重新排列的列表
reverse=True 降序 reverse=False 升序 (默认)
ret=sorted([9,6,7,2,3,1],key=abs,reverse=False)
print(ret)
输出结果 [1,2,3,6,7,9]
匿名函数: 格式: f=lambda 形参 : 返回值或表达式
有参无返
f=lambda a,b:print(a+b)
f(1,5)
有参有返
f=lambda a,b:a+b
print(f(1,5))
递归函数:在函数内部调用自身,上限为:998
阶乘
def func(n):
if n==1:
return 1
else:
return n*func(n-1)
print(func(5))
返回函数:外层函数 返回 内层函数的引用
def outer(n):
def inner( ):
return sum([i for i in range(1,n+1)])
return inner
outter(10)( )