在 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]
时发生的情况。这也是其他语言通常访问二维数组的方式,因此最好提前了解如何在这方面使用它们。
我是 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]
时发生的情况。这也是其他语言通常访问二维数组的方式,因此最好提前了解如何在这方面使用它们。