线的二维数组python的总和

时间:2018-05-26 16:22:58

标签: python arrays sum

我正在编写一个代码,可以读取二维数组中的数据,然后将每一行的总和存储在另一个1维数组中。 这是我正在使用的代码:

n = 256
b = [[0]*n for p in range (n)]
line = []

for k in range(1,4,256):
   for j in range(1,256,1):
      line[k] = line[k] + b[j][k]
print line

但我总是收到此错误:列表索引超出范围

1 个答案:

答案 0 :(得分:0)

最重要的是,您需要像使用b一样定义列表,因为您无法在不存在的位置访问值。 它基本上是一个256x256的zise矩阵,所以要先解决这个问题,你需要从0开始而不是1,因为你会错过前3个值,第k个范围内的第2个值(1,4,256)你把数字256放在最后,这意味着在第二次运行时k将等于257并退出循环。

*您可以用行[k] + = b [j] [k]

替换行[k] =行[k] + b [j] [k]

所以最后代码如下:

line = [n*[0]]
for k in range(0,256):
    for j in range(0,256):
        line[k] += b[j][k]
print line