Python高阶函数 - reduce

    reduce函数作用就是把一个函数作用在一个序列上,这个函数必须接收两个参数,reduce函数把结果继续和序列的下一个元素做累积计算,跟递归有点相似。



    reduce函数参数主要包括两个,一个是以上说的作用函数,另外一个是sequence 序列。还有一个是可选参数,initial 初始值。



    例如定义一个 func(x,y) 函数,执行 x * y 相乘,reduce 传入序列 [1,2,3,4,5,6] , 执行过程为 1 * 2 结果为2,然后把这结果继续和3相乘,得出6,然后 6再和4相乘,如此类推,最后结果为720



在这里插入图片描述



from functools import reduce

def func(x,y):
    print(x,y)
    return x * y

print(reduce(func,[1,2,3,4,5,6]))


    当有 initial 初始值为2时: 首先是2和序列里的1相乘,得出2,再和序列的第2个元素2相乘,得出4,如此类推,最后结果为1440



在这里插入图片描述



from functools import reduce

def func(x,y):
    print(x,y)
    return x * y

print(reduce(func,[1,2,3,4,5,6],2))


    最后,顺带另外一个方法知识点,也可以通过匿名函数去简写这表达式函数的运算。



在这里插入图片描述



from functools import reduce

# def func(x,y):
#     print(x,y)
#     return x * y

# print(reduce(func,[1,2,3,4,5,6],2))

print(reduce(lambda x,y :x * y,[1,2,3,4,5,6]))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值