看到这题的时候,我觉得自己的智商被侮辱了
print(1+2+3+10248)
print(sum((1,2,3,10248)))
这样是不是就可以?
出于对题目的尊重,百度了一下,发现reduce()这个函数。
菜鸟教程https://www.runoob.com/python/python-func-reduce.html
*描述
reduce() 函数会对参数序列中元素进行累积。
函数将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给 reduce 中的函数 function(有两个参数)先对集合中的第 1、2 个元素进行操作,得到的结果再与第三个数据用 function 函数运算,最后得到一个结果。
reduce() 函数语法:
reduce(function, iterable[, initializer])
# 参数
# function -- 函数,有两个参数
# iterable -- 可迭代对象
# initializer -- 可选,初始参数
*返回值
返回函数计算结果。
*实例
以下实例展示了 reduce() 的使用方法:
>>>def add(x, y) : # 两数相加
... return x + y
...
>>> reduce(add, [1,2,3,4,5]) # 计算列表和:1+2+3+4+5
15
>>> reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数
15
除此之外,还有一篇博客
“reduce() 函数在 python 2 是内置函数, 从python 3 开始移到了 functools 模块。
python 社区推荐写可读性好的代码,有更好的选择时不建议用reduce,所以 python 2 中内置的reduce 函数 移到了 functools模块中”
切身体会
from functools import reduce
a = reduce(lambda a, b: a + b, (1, 2, 3, 10248))
print(a) # 10254