有没有办法比 for 循环更快地总结一个数字列表,也许在 Python 库中?还是只有多线程/矢量处理才能有效地做到这一点?
编辑:为了澄清,它可以是任何数字的列表,未排序,只是来自用户的输入。
您可以使用 sum() 对数组的值求和。
a = [1,9,12]
print sum(a)
用循环时间总结列表的另一种方法:
s = reduce(lambda x, y: x + y, l)
如果列表中的每一项都简单地增加 1,或者如果您可以在系列中找到一个模式,您可以找到一个求和 n 项的公式。例如,级数 {1,2,3,...,n} 的和 = n(n+1)/2
在这里阅读更多
好吧,我不知道它是否更快,但您可以尝试一些微积分来使其成为一次操作。(N*(N+1))/2 给出从 1 到 N 的每个数字的总和,还有其他公式可以解决更复杂的总和。
对于一般列表,您必须至少检查每个成员至少一次才能得到总和,这正是 for 循环所做的。使用库 API(如 sum)更方便,但我怀疑它实际上会更快。