在矩阵中输入数字。为什么我得到IndexError:列表赋值索引超出范围?
i, j = 5, 7;
matrix = [[x + y for x in xrange(i)] for y in xrange(j)]
print (matrix)
for w in xrange(i):
print (w)
for h in xrange(j):
tmp = int(input('Enter element of matrix'))
matrix[w][h] = tmp
sums = map( lambda row: sum(row), matrix)
print (matrix)
print (sums)
print ('max:', sums.index(max(sums)))
print ('min:', sums.index(min(sums)))
答案 0 :(得分:1)
matrix = [[x + y for x in xrange(i)] for y in xrange(j)]
上面的行使列数= i和行= j,因为它将创建一个带有i个变量的j列表,其中每个列表都充当一行。
for w in xrange(i):
print (w)
for h in xrange(j):
tmp = int(input('Enter element of matrix'))
matrix[w][h] = tmp
并且在这个循环中你使用w作为行,范围从0到i-1而不是它应该是0到j-1 类似地,h应该在0到i-1之间,而不是从0到j-1 所以你的循环应该是这样的 -
for w in xrange(j): #note this changed from i to j
print (w)
for h in xrange(i): #and this from j to i
tmp = int(input('Enter element of matrix'))
matrix[w][h] = tmp