需要帮助 - 列出索引超出范围

时间:2013-10-21 12:52:03

标签: python

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

请帮忙。

1 个答案:

答案 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]]

您可能会问自己:为什么不简单地a = [[0] * y] * x?继续,尝试一下,看看会发生什么。它有效,不是吗?现在做a[0][0] = 1然后看看会发生什么......