最近看到一个笔试题,考察的都是 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)))
一行Python代码求列表平方和
本文介绍如何使用Python的高阶函数map和reduce,以及eval函数,在一行代码内高效求得列表元素的平方和,避免使用sum函数,展示了Python的强大和简洁。
3万+

被折叠的 条评论
为什么被折叠?



