高阶函数
把函数作为参数传⼊,这样的函数称为⾼阶函数,⾼阶函数是函数式编程的体现。
高阶函数的使用
#此处的f是函数作为参数传入
def add_num_new(f,a,b):
return f(a)+f(b)
print(add_num_new(round,1.4,-1.5))
print(add_num_new(abs,1.4,-1.5))
-1
2.9
这里的round函数是对小数进行四舍五入。
内置⾼阶函数
map()
map(func, lst),将传⼊的函数变量func作⽤到lst列表变量的每个元素中,并将结果组成新的列表迭代器(Python3)返回。
def pow_2(a):
return a**2
array=[1,2,3,4,5]
out_array=map(pow_2,array)
print(out_array)#打印结果是内存地址
print(list(out_array))#强转
<map object at 0x000002561647A128>
[1, 4, 9, 16, 25]
reduce()
reduce(func,lst),其中func必须有两个参数。每次func计算的结果继续和序列的下⼀个元素做累积计算。
下面的例子将计算 list1 序列中各个数字的累加和。
import functools
def add(a,b):
return a+b
array=[1,3,4,6,7]
result=functools.reduce(add,array)
print(result)
21
filter()
filter(func, lst)函数⽤于过滤序列, 过滤掉不符合条件的元素, 返回⼀个 filter 对象。如果要转换为列表,可以使⽤ list() 来转换。
def func(a):
return a % 3==0
array=[1,3,4,5,6,9,12]
result=filter(func,array)
print(list(result))
[3, 6, 9, 12]
本文介绍了Python中的高阶函数,包括将函数作为参数的add_num_new函数示例,以及内置的map()、reduce()和filter()函数的使用。map()函数用于将指定函数应用到列表的每个元素上并返回结果列表,reduce()函数通过累积计算将列表元素结合成一个单一值,filter()函数则用于过滤列表元素,返回满足条件的新列表。
835

被折叠的 条评论
为什么被折叠?



