x = int (raw_input('Introduceti Ziua in care doriti adaugarea: '))
print
print " Options Available"
print "---------------------------------"
print "1 -- FOOD"
print "2 -- BOOKS"
print "3 -- SPORTS"
print "4 -- Clothing"
print "5 -- Transport"
y = int (raw_input('Introduceti tipul dorit: '))
m = int (raw_input('Introduceti valoarea dorita: '))
a[x][y]=a[x][y] + m
这是我的一个功能。 a
是全局的,定义为所有值都设置为0的矩阵,例如a = [[0,0,0,0,0],[0,0,0,0,0,0]]
。如果我尝试a[1][2] = a[1][2] + m
,我会看到错误消息List index out of range
。
请帮忙。
答案 0 :(得分:4)
无法在此处重现:
>>> a = [[0,0,0,0,0],[0,0,0,0,0,0]]
>>> a[1][2] = a[1][2] + 999
>>> a
[[0, 0, 0, 0, 0], [0, 0, 999, 0, 0, 0]]
您知道[1]
访问列表的第二个元素吗?
如果您想创建一个x
列表数组,每个y
个零,请执行
a = [[0] * y for _ in xrange(x)]
例如:
>>> x = 4
>>> y = 5
>>> a = [[0] * y for _ in xrange(x)]
>>> a
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
[0] * y
会创建y
个零的列表。x
次内完成的。您可能会问自己:为什么不简单地a = [[0] * y] * x
?继续,尝试一下,看看会发生什么。它有效,不是吗?现在做a[0][0] = 1
然后看看会发生什么......