更新时间:2022-09-18 21:32:51
本节书摘来自异步社区《Python数据科学指南》一书中的第1章,第1.13节,作者[印度] Gopi Subramanian ,方延风 刘丹 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。
Python支持高阶函数功能:将一个函数作为另一个函数的参数传递。
我们将前面一个例子中的函数square_input ()重写,以此演示一个函数是如何被作为另一个函数的参数进行传递。
请看如何将一个函数作为另一个函数的参数进行传递。
from math import log
def square_input(x):
return x*x
# 1.定义一个类函数,它将另外一个函数作为输入
# 并将它应用到给定的输入序列上。
def apply_func(func_x,input_x):
return map(func_x,input_x)
# 2.这里使用apply_func()函数,并校验结果
a = [2,3,4]
print apply_func(square_input,a)
print apply_func(log,a)
我们在第1步中定义了函数apply_func,它有两个变量参数,第1个是一个函数,第2个是一个序列。我们使用了map函数(后续章节将介绍)将给定的函数应用到序列中的所有元素。
接着,我们在列表上调用apply_func,先是square_input函数,然后是log函数,输出的结果如下。
[4, 9, 16]
你会发现,所有的列表元素都被求出了平方值,map函数将square_input函数应用到序列里的所有元素上。
[0.69314718055994529, 1.0986122886681098, 1.3862943611198906]
同样地,log函数也被应用到序列里的所有元素上。