我正在编写一个代码,可以读取二维数组中的数据,然后将每一行的总和存储在另一个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
但我总是收到此错误:列表索引超出范围
答案 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