我有一个整数数组,这些整数之间用空格隔开,例如这个小例子:
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
但是它不返回我想要的输出。你知道如何解决吗?
答案 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