用一行代码高效的求一个列表的平方和

最近看到一个笔试题,考察的都是 Python 中的高阶函数
题目如下:用一行代码高效的求一个列表的平方和(不能用 sum 函数)

分析

1.先将列表中每个值作平方:

立即想到 map 函数,假设列表是 range(10),那么这个列表中平方是这样

map(lambda x: x**2 , range(10))

因为题目要求一行代码,所以匿名函数 lamdba 是必须的!

2. 求和:

Python 中有个高阶函数 reduce 就是用来做累积的!
比如,求两个数的和,如下

reduce(lambda x,y: x+y)

最后将两者合起来,结果如下:

result = reduce(lambda x, y: x+y, (map(lambda x: x ** 2, range(10))))

还可以用 eval 函数

result = eval("+".join(str(i ** 2) for i in range(10)))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

全村之希望

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值