晓夏

YoungCheung

Zhang Sir's technical way

高阶函数

浏览量:1053

高阶函数是至少满足这两个任意中的一个条件:

一、能接受一个或多个函数作为输入

二、输出一个函数。

举例:

def function1(x):
    return x*x
def function2(func,y):
    return func(y)
print function2(function1,5)

这里的 function2 就是一个高阶函数,因为它的第一个参数是一个函数,满足了第一个条件。


内置高阶函数

1、map()

将序列中的元素通过函数处理返回一个新列表。

语法:

map(function, sequence[, sequence, ...]) -> list
例:

list=[1,2,3,4,5]
print map(lambda x:str(x)+".txt",list)

#输出结果
['1.txt', '2.txt', '3.txt', '4.txt', '5.txt']

2、filter()

将序列中的元素通过函数处理返回一个新列表、元组或字符串。

语法:

filter(function or None, sequence) -> list, tuple, or string

例:过滤列表中的奇数

list=[1,2,3,4,5]
print filter(lambda x:x%2==0,list)

#输出结果
[2,4]

3、reduce()

reduce()是一个二元运算函数,所以只接受二元操作函数。

语法:

reduce(function, sequence[, initial]) -> value

例:计算列表总和

list=[1,2,3,4,5]
print reduce(lambda x,y:x+y,list)

#输出结果
15



神回复

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。