python 高阶函数
python高阶函数:
接受一个或多个函数作为参数,输出一个函数
自定义sort函数:
内建函数-高阶函数
sorted(iterable[, key][, reverse]) 排序
sorted(iterable[, key][, reverse]) 排序 ,返回一个新的列表,对一个可迭代对象的所有元素排序,排序规则为key定义的函数,reverse表示是 否排序翻转
sorted(lst,key=lambda x:6-x) # 返回新列表
list.sort(key=lambda x: 6-x) # 就地修改
filter(function, iterable) --> filter object 过滤数据
过滤可迭代对象的元素,返回一个迭代器
function一个具有一个参数的函数,返回bool
过滤出数列中能被3整除的数字 :list(filter(lambda x: x%3==0, [1,9,55,150,-3,78,28,123]))
map(func, *iterables) --> map object 映射
对多个可迭代对象的元素按照指定的函数进行映射,返回一个迭代器
list(map(lambda x:2*x+1, range(5)))
dict(map(lambda x: (x%5,x) , range(500)))
柯里化Currying:
指的是将原来接受两个参数的函数变成新的接受一个参数的函数的过程。新的函数返回一个以原有第 二个参数为参数的函数
例:将加法函数柯里化:
通过嵌套函数就可以把函数转换成柯里化函数