[python] 高阶函数

高阶函数

变量可以指向函数,函数的参数可以接收变量,那么函数可以接收另一个函数作为参数,这种函数称为高阶函数

(1)把函数作为实参

(2)把函数作为返回值

#函数作为实参
def fun(f):
    return f()

def hello():
    return "hello world"

print (fun(hello))

#函数作为返回值
def fun():
    def hello():
        return "hello world"
    return hello
f=fun()
print(f())

系统内置的高阶函数

map映射

根据提供的函数对指定序列做映射, 并返回映射后的序列

map(function, iterable, ...)

参数/返回值
function – 函数, 序列中的每个元素需要执行的操作, 可以是匿名函数
iterable – 一个或多个序列
Python 2.x中返回列表, Python 3.x中返回map类

reduce

函数会对参数序列中元素进行累积
函数将集合中的所有数据进行下列操作:用传给educe中的函数function先对集合中的第1、2个元素进行操作,得到的结果再与第三个数据用function函数运算,最后得到一个结果
在Python3中,reduce函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里,如果想要使用它,则需要通过引入functools模块来调用reduce函数
reduce(function, iterable[, initializer])
参数/返回值
function – 函数, 序列中的每个元素需要执行的操作, 可以是匿名函数
iterable – 需要执行操作的序列
initializer – 可选,初始参数
最后返回函数的计算结果, 和初始参数类型相同

filter过滤

用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表

filter(function, iterable)
参数/返回值
function – 过滤操作执行的函数
iterable – 需要过滤的序列
序列的每个元素作为参数传递给函数进行判,然后返回True或False,最后将返回True的元素放到新列表中
Python 2.x中返回的是过滤后的列表, 而Python 3.x中返回到是一个filter类

 

sorted排序

 

 

enumerate

 

 

zip

 

 

reverse

posted @ 2019-03-12 23:36  Moke丶青  阅读(99)  评论(0编辑  收藏  举报