2017-03-16 147 views
0

试图让这个程序打印每一行的总和,然后所有元素的总和,这与总计很好,但我不明白为什么行的个别总和不输出正确二维数组的特定行的总和 - Python

rows = len(numbers) 
cols = len(numbers[0]) 
total=0 

的变量如上设定(各列是相同长度的,并且阵列是完全整数)

我希望它通过每个运行行,添加该行内的每一列并打印它,然后打印整个数组的总数。

for x in range(0, rows): 
    rowtotal=0 
    for y in range(0, cols): 
    rowtotal=rowtotal+int(numbers[x-1][y-1]) 
    print(rowtotal) 
    total=total+rowtotal 
print(total) 

阵列通过 import sys numbers= sys.argv[1:] for i in range(0,len(numbers)): numbers[i]= numbers[i].split(',')

进口,我通过网上软件,它可能是问题的编码。目前,它返回

Program Failed for Input: 1,1,-2 -1,-2,-3 1,1,1 Expected Output: 0 -6 3 -3 Your Program Output: 3 0 -6 -3

任何其他代码,包括numbers[x][y]似乎永远返回一个错误

+0

你能打印阵列号吗? –

回答

1

你应该有numbers[x][y]而不是numbers[x-1][y-1]

所以,如果你这样做:

numbers=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]] 
rows = len(numbers) 
cols = len(numbers[0]) 
total=0 
for x in range(0, rows): 
    rowtotal=0 
    for y in range(0, cols): 
     rowtotal=rowtotal+int(numbers[x][y]) 
    print(rowtotal) 
    total=total+rowtotal 
print(total) 

输出

6 
15 
24 
33 
78 

此外,如果阵列numbers只包括整数,你可以删除int(numbers[x][y])int

+0

谢谢但返回错误IndexError:列表索引超出范围 – user91167

+0

您是否正确定义了二维数组编号?我给答案添加了一个运行示例。我运行它,它为我工作。 –

+0

数组已导入(是正确的术语?)我编辑了问题 – user91167