Python_高阶函数

Python_高阶函数

1.体验高阶函数

# abs():对数字求绝对值
print(abs(-2))    #2

#round():求数字求四舍五入
print(round(1.6))    #2
print(round(1.3))    #1

需求:任意两个数字,按照指定要求整理数字后再求和

  • 方法一:
def add_num(a,b):
    return abs(a)+abs(b)

result=add_num(-1,-2)
print(result)    #3
  • 方法二:
def add_num(a,b,f):
    return f(a)+f(b)

result1=add_num(-1,-2,abs)
print(result1)     #3

result2=add_num(1.3,1.4,round)
print(result2)      #2

result3=add_num(1.3,1.7,round)
print(result3)      #3

2.内置高阶函数

2.1 map()

map(func,lst),将传入的函数变量func作用到lst变量的每个元素中。

# 需求:计算list1序列中各个数字的2次方
list1=[2,4,6,8]

def func(x):
    return x**2

result=map(func,list1)
print(result)    #输出内存地址
print(list(result))   #[4, 16, 36, 64]

2.2 reduce()

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

# 需求:计算list2序列中各个数字的累加和
import functools
list2=[1,2,4,5,6]

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

result=functools.reduce(func,list2)
print(result)     #18

2.3 filter()

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

# 需求:求序列中的偶数
list3=[1,2,3,4,5,6,7,8,9,20]

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

result=filter(func,list3)
print(list(result))    #[2, 4, 6, 8, 20]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值