高阶函数概念
自定义sort函数
内建函数 - 高阶函数
sorted(iterable[,key][,reverse]) 排序
返回一个新列表,对一个可迭代对象的所有元素排序,规则为key定义的函数,revers表示反转排序
sorted(lst,key=lambda x:6-x)
# 返回新列表
list.sort(key=lambda x:6-x)
# 就地修改
filter(function,iterable)
过滤可迭代对象的元素,返回一个迭代器
function一个具有一个参数的函数,返回bool
例:过滤数列中能被3整除的数字
list(filter(lambda x:x%3==0,[1,532,-22,27]))
map(function,*iterables) → map object
对多个可迭代对象的元素按照指定的函数进行映射,返回一个迭代器
list(map(lambda x:2*x+1,range(5)))
dict(map(lambda x:(x%5,x),range(500)))
柯里化
def add(x,y):
return x + y
def add(x):
def _add(y):
return x + y
return _add
@functionname
@logger # <=> fn = logger(fn)
def logger(fn):
def wrapper(*args,**kwargs):
print('begin')
x = fn(*args,**kwargs)
print('end')
return x
return wrapper
@logger # <=> add = logger(add)
def add(x,y):
return x + y
print(add(1,6))
带参装饰器
@functionname(参数列表)
文档字符串
位于函数语句块的第一行
__doc__
访问文档装饰器模版
from function import reduce
num=[1,5,6,8,2]
print(num)
print(sum(num))
print(reduce(lambda v,x: v+x,num))
使用前提:
同样的函数参数得到的结果相同
函数执行的时间长,且需要多次执行
@functools.lru_cache(maxsize=128,typed=False)
因篇幅问题不能全部显示,请点此查看更多更全内容