【问题标题】:Error while Accessing 2d array in Python 2.7 [duplicate]在 Python 2.7 中访问二维数组时出错 [重复]
【发布时间】:2016-04-20 04:24:55
【问题描述】:

我是 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

谁能帮帮我?任何帮助将不胜感激。

【问题讨论】:

    标签: python arrays python-2.7 2d


    【解决方案1】:

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

    错误原因

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

    相反,您真正想要的是这样思考:

    • 执行a[0] 会为您提供a 中的first 列表。

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

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

    【讨论】:

    • 非常感谢@akshat-mahajan
    • @KrishnaKumar 标记为接受的答案,如果这对你有帮助。
    • 我还想知道一件事,我如何计算同一数组中某个元素的出现次数,例如。我想计算 a[0][2] 的出现,a.count(a[0][2]) 对我不起作用。
    • @KrishnaKumar 您应该将此作为一个单独的问题提出,但这取决于您所说的“计算出现次数”的含义。如果你想计算a[0][2]value 出现在整个二维数组中的次数,那么你必须编写一个嵌套的 for 循环来迭代索引并检查每个值 - 没有办法周围。如果你只想计算它在同一中出现的次数,那么a[0].count(a[0][2])就是你要找的。​​span>
    • 顺便说一句,upvoting 与标记为接受的答案不同。投票计数器下方有一个小勾号 - 你必须按下它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 2014-04-29
    • 2018-07-24
    • 1970-01-01
    相关资源
    最近更新 更多