高阶函数
First Class Object
函数在python中是一等公民
函数也是对象,可掉用的对象
函数可以做为普通变量、参数、返回值等
高阶函数
数学概念y = g(f(x))
在数学和科学计算机中,高阶函数应当是至少满足下面一个条件的函数
接受一个或多个函数作为参数
输出一个函数
内建函数
sorted(iterable,*,key=None,reverse=False) ->list
排序
filter(function,*iterables) -> map object
过虑
map(function,*iterables)-> map object
映射
内建函数-高阶函数
sorted(iterable,*key=None,reverse=False) 排序
立即返回一个新的列表,对一个可迭代对象的所有元素排序,排序规则为key定义的函数,reverse表示是否翻转
sorted(lst,key=lambda x:6-x) # 返回新列表
list.sort(key=lambda x:6-x) # 就地修改
内建函数-高阶函数
filter(function or None ,iterable)
过虑可迭代对象的元素,返回一个迭代器
function一个具有一个参数的函数,function(item)应返回bool,或等效bool。如果是None,则将元素等效bool。
例如
list(filter(lambda x:x%3==0, [1,9,55,150,-3,78,28,123]))
list(filter(None,range(-5,5)))
内建函数-高阶函数
map(function,*iterables) -> map object
对多个可迭代对象的元素按照指定的函数进行映射,返回一个迭代器
list(map(lambda x:2*x+1,range(5)))
dict(map(lambda x:(x%5,x),range(500)))
dict(map(lambda x,y:(x,y),'abcde'),range(10))