【问题标题】:2D lists Not indexing correctly [duplicate]二维列表未正确索引[重复]
【发布时间】:2013-11-19 20:41:41
【问题描述】:

我有以下简单的二维列表程序:

rowMatrix = [0]*4
matrix = [rowMatrix]*4

for a in range(4):
    for b in range(4):
        matrix[a][b] = random.randrange(0,2)
print(matrix)`

它似乎会将随机数 (0, 1) 放入 4x4 数组的所有 16 个单元格中。但是所有 4 行每次都是相同的。怎么了?

【问题讨论】:

  • 见官方常见问题解答中的How do I create a multidimensional list
  • 这是大约 300 个其他问题的重复。我已经链接了其中一个,但是快速搜索,或者只是浏览“相关”链接,应该会找到其余的。
  • @AshishNitinPatil:如果您有足够的代表,请投票以作为 dup 结束问题,而不仅仅是添加评论。
  • 我在添加评论之前对其进行了标记。该标志提出了一个问题,该问题也是重复的。我还不能投赞成票。
  • 谢谢。 Python 列表不如 Java 2D 数组直观。

标签: python arrays list nested 2d


【解决方案1】:

以下行创建了四个实际上是相同列表的列表元素:

matrix = [rowMatrix]*4

这意味着修改matrix[0][0]也会修改其他列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-28
    • 1970-01-01
    • 2018-11-23
    相关资源
    最近更新 更多