python 高阶函数

本文介绍了Python的高阶函数概念,通过实例展示了如何将函数作为参数传入,增强了代码的灵活性。同时,详细讲解了内置的三个高阶函数:map()用于对列表元素应用指定函数并返回新列表,reduce()用于对列表元素进行累积计算,如求序列累加和,而filter()则用于过滤列表元素,返回符合条件的元素集合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一·高阶函数
把函数作为参数传入

abs() 求绝对值
round() 四舍五入

例子:任意两个数字,按照指定要求整理数字后进行求和计算

一般方法

def add_num(a,b):
	return abs(a) + abs(b)

result = add_num(-3,1)
print(result) #3
	

高阶函数方法:增加灵活性,传入任意函数

def add_num(a,b,f)
	return f(a) + f(b)

print(add_num(10,-20,abs)) #30
print(add_num(1.6,2.1,round)) #4

定义一个参数f,用来传递函数

二·内置的高阶函数

1.map()
map(func,lst),将传入的函数变量func作用到list变量的每个元素中,并将结果组成新的列表

例子:计算list1序列中各个数字的2次方

list1 = [1,2,3,4]
def func(x):
	return x ** 2

result = map(func,list1)
print(result) #迭代器
print(list(result))  #[1,4,9,16]

2.reduce()
reduce(func,lst),其中func必须有两个参数,每次func计算的结果和序列下一个元素做累积计算

例子:计算list1序列中各个数字的累加和

import functools
list1 = [1,2,3,4,5]
def func(a, b):
	return a + b

result = functools.reduce(func,list1)
print(result) #15

即1+2+3+4+5

3.filter()
filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象。如果要转换成列表,可以用list()来转换。

list1 = [1,2,3,4,5,6,7,8,9,10]

def func(x):
	return x % 2 == 0

result = filter(func,list1)
print(result) #<filter boject at 0x00000hshw667...>
print(list(result)) #[2,4,6,8,10]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值