python3中数组中所有元素的总和

时间:2019-06-13 13:35:20

标签: python arrays python-3.x

我有一个整数数组,这些整数之间用空格隔开,例如这个小例子:

ar = 1000000001 1000000002 1000000003 1000000004 1000000005

我想逐个字符地总结数字。例如,小示例的输出为:

5000000015

实际上所有数字中第一个元素的总和为5,所有元素都是这种情况。

要获得这样的结果,我编写了以下代码:

def sum(ar):
    for i in ar.split():
        sum = 0
        for j in range(len(i)):
            sum += i[j]
    return sum

但是它不返回我想要的输出。你知道如何解决吗?

3 个答案:

答案 0 :(得分:0)

似乎您的初始“数组”是一个字符串,因此,在拆分数组时,您仍在处理无法添加到起始零值的字符串列表。同样,不清楚当您的预期输出只是所有整数的总和时,为什么要尝试对“每个字符”进行求和。您确实只需要将每个整数字符串转换为整数,然后求和。

s = '1000000001 1000000002 1000000003 1000000004 1000000005'

total = sum(int(x) for x in s.split())
print(total)
# 5000000015

答案 1 :(得分:0)

尝试一下。它应该可以工作

ar = "1000000001 1000000002 1000000003 1000000004 1000000005"
total=0
nums=ar.split(" ")
for num in nums:
    total+=int(num)
print(total)

答案 2 :(得分:0)

首先使用regex捕获所有数字,然后通过首先对其进行解析将其传递给sum函数。

import re

ar = "1000000001 1000000002 1000000003 1000000004 1000000005"
pattern = r'([0-9]+)' 

matches = re.findall(pattern, ar)
digit_sum = sum((int(match) for match in matches))
print (digit_sum)

输出:

5000000015