python学习笔记-高阶函数

python学习笔记-高阶函数

需求:任意两个数字 按照指定的要求整理数字之后再进行求和运算

方法一、

Def add_num(a,b):
		Return abs(a) + abs(b)
			
Result = add_num(-1,2)
Print(result)
	

方法二、

def sum_num(a,b,f):
	  return f(a) + f(b)
	
result = sum_num(1,2,abs)
print(result)

方法二的代码更加简洁,函数的灵活性更强,将高阶函数作为形参传入函数

1. map(func,list)

作用:将传入的func作用于list中的每一个元素中,并且将结果做成新的列表(python2)or 迭代器(python3)返回

需求:计算list1中的每一个数字的平方和

list1=  [1,2,3,4,5]

def func(x):
	return x**2

result1 = map(func,list1) #返回一个迭代器

print(result1)   #打印的只是内存地址
print(list(result1))  #打印的是列表

2. reduce(func,list)

这里要求func必须要有两个参数,每次func计算的结果继续和序列中的下一个元素进行累积计算

注意:reduce传入的func必须要有两个参数,且需要导入functools模块

import functools

list1 = [1,2,3,4,5]

def func(a,b):
	return a + b

result2 = functools.reduce(func,list1)
print(result2)

3. filter(func,list)

过滤掉不符合条件的元素,返回一个filter的对象,如果要转换成列表可以使用List进行转换

这里的func就是充当筛选条件 true or flase


list2 = [1,2,3,4,4,5,6,6,7,7]

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

result = filter(func,list2)
print(result)
print(list(result))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少写代码少看论文多多睡觉

求打赏,求关注,求点赞

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值