在 Python 2.7 中访问二维数组时出错

Error while Accessing 2d array in Python 2.7

我是 python 的初学者,我想访问二维矩阵中的每个元素。 我正在使用此代码。

a=[]
for i in xrange(3):
     a.append([])
     for j in xrange(3):
        a[i].append(i+j)
print a
print a[0,2]

但是当我在 a[0,2] 执行元素时它给我一个错误。

[[0, 1, 2], [1, 2, 3], [2, 3, 4]]

Traceback (most recent call last):
  File "C:/Users/--/--/1B.py", line 10, in <module>
    print a[0,2]
TypeError: list indices must be integers, not tuple

谁能帮帮我?如有任何帮助,我们将不胜感激。

你必须做 a[0][2],而不是 a[0,2]

错误原因

您收到的错误是因为 Python 没有将 0,2 识别为有效索引。这并不奇怪——索引应该只是纯整数,而不是 <integer>, <integer>。 Python 解释器将它们识别为两个独立的整数,但不知道如何处理它们。

相反,你真正想要的是这样想:

  • 执行 a[0] 会得到 第一个 列表 a.

  • a[0][2] 现在访问 a 中的第一个列表,然后访问 that 列表中的第二个元素。

如果您执行 b = a[0] 然后调用 b[2],您将获得完全相同的行为 - 因为这就是您执行 a[0][2] 时发生的情况。这也是其他语言通常访问二维数组的方式,因此最好提前了解如何在这方面使用它们。