【问题标题】:Python 2D Array IssuePython 2D 数组问题
【发布时间】:2012-09-10 08:52:59
【问题描述】:

我正在尝试将二维数组的特定值设置为 True。这是代码的sn-p:

b [ [False] * 3] * 3
b[2][1] = True 

不幸的是,这会将整行设置为 True(因此 b[0][1] 将被更改为 True)。有什么想法吗?

编辑:

刚刚尝试了这段代码,它成功了:

 b = []
 for i in range(3):
     b.append([False, False, False])
 b[1][2] = True

为什么它会在这种情况下起作用而不是前者?

【问题讨论】:

    标签: python-3.2


    【解决方案1】:

    [[False]*3]*3 创建三个对同一 [False,False,False] 对象的引用,因此当您更改一项时,您的其他行/列也会更改。

    您的第二个版本通过为每一行/列创建一个新的[False, False, False] 对象来避免这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 2022-01-18
      相关资源
      最近更新 更多