Python练习:编写一个prod()函数,可以接受一个list并利用reduce()求积:

本文介绍了如何使用Python的reduce函数结合lambda表达式实现数组乘积的计算,从基础的函数定义到lambda函数的应用,逐步解析reduce函数的工作原理,并通过具体的示例代码验证了算法的有效性。
摘要由CSDN通过智能技术生成

 

初学中,题目来自【廖雪峰的官方网站-map/reduce】

刚开始自己写了好几遍,能得出结果945,但是测试代码显示失败,原因是函数返回的是空值NONE。

prod这个函数只有一个参数,最初我将其改为x,y2个参数,能得出结果,却无法通过测试代码。后来看到有人写的代码是函数内嵌函数,测试成功,明白了可以通过变通将一个属性作用到另一个属性。

def prod(a):
    def m(x,y):
        return x*y
    return reduce(m,a)
print(prod([3,5,7,9]))

然后学习lambda函数,比较简洁,比较符合python。

from functools import reduce
def prod(l):
    return reduce(lambda x,y:x * y,l)

测试代码:
print('3 * 5 * 7 * 9 =', prod([3, 5, 7, 9]))
if prod([3, 5, 7, 9]) == 945:
    print('测试成功!')
else:
    print('测试失败!')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值