将数字列表加起来比使用for循环更快的方法?

时间:2009-05-12 02:20:32

标签: python algorithm for-loop

有没有办法比使用for循环更快地总结一个数字列表,也许在Python库中?或者只是多线程/矢量处理才能有效地发挥作用?

编辑:只是为了澄清,它可以是任何数字的列表,未分类,只是来自用户的输入。

5 个答案:

答案 0 :(得分:32)

您可以使用sum()对数组的值求和。

a = [1,9,12]
print sum(a)

答案 1 :(得分:5)

另一种用循环时间总结列表的方法:

    s = reduce(lambda x, y: x + y, l)

答案 2 :(得分:2)

如果列表中的每个术语只增加1,或者如果您可以在系列中找到模式,则可以找到用于求和n个术语的公式。例如,系列{1,2,3,...,n} = n(n + 1)/ 2

的总和

了解更多here

答案 3 :(得分:1)

嗯,我不知道它是否更快但你可以尝试一点微积分来使其成为一个操作。 (N *(N + 1))/ 2给出了从1到N的每个数的总和,还有其他公式用于求解更复杂的和。

答案 4 :(得分:0)

对于一般列表,您必须至少检查每个成员至少一次以获得总和,这正是for循环所做的。使用库API(如sum)更方便,但我怀疑它实际上会更快。