Python学习笔记(十四):高阶函数

本文介绍了Python中的高阶函数,包括将函数作为参数的add_num_new函数示例,以及内置的map()、reduce()和filter()函数的使用。map()函数用于将指定函数应用到列表的每个元素上并返回结果列表,reduce()函数通过累积计算将列表元素结合成一个单一值,filter()函数则用于过滤列表元素,返回满足条件的新列表。

高阶函数

把函数作为参数传⼊,这样的函数称为⾼阶函数,⾼阶函数是函数式编程的体现。

高阶函数的使用

#此处的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]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值