GuoQiangHuang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

高阶函数

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))


 

posted on 2019-01-21 20:36  Lengse-Spirit  阅读(618)  评论(0编辑  收藏  举报