如何在python中汇总数字列表

时间:2013-07-04 14:26:15

标签: python numbers sum

首先,我需要从455,111,451到455,112,000的范围内提取数字。 我可以手动执行此操作,我只需要50个数字,但这不是重点。

我试图:

for a in range(49999951,50000000):
print +str(a)

我该怎么办?

3 个答案:

答案 0 :(得分:14)

使用sum

>>> sum(range(49999951,50000000))
2449998775L

它是builtin function,这意味着您无需导入任何内容或执行任何特殊操作即可。你应该在问这里之前先咨询文档或教程,以防它已经存在 - 而且,StackOverflow也有一个搜索功能,可以帮助你找到问题的答案。


在这种情况下,sum函数获取一个整数列表,并以下面类似的方式逐步将它们相加:

>>> total = 0
>>> for i in range(49999951,50000000):
    total += i

>>> total
2449998775L

此外 - 与Reduce类似:

>>> reduce(lambda x,y: x+y, range(49999951,50000000))
2449998775L

答案 1 :(得分:5)

sum是显而易见的方法,但是如果你有一个大范围并且通过每次增加每个数字来计算总和可能需要一段时间,那么你可以用数学方式来做这个(如{{1中所示) }}):

sum_range

输出:

start = 49999951
end = 50000000

total = sum(range(start, end))

def sum_range(start, end):
    return (end * (end + 1) / 2) - (start - 1) * start / 2

print total
print sum_range(start, end)

答案 2 :(得分:0)

我没有很好地回答你的问题 如果你想得到数字之和

sum = 0
for a in range(x,y):
    sum += a
print sum

如果您想在列表中包含数字:

lst = []
for a in range(x,y):
    lst.append(a)
print lst