2012-09-10 75 views
0

我想设置一个二维数组为True的特定值。下面是代码片段:Python的二维数组问题

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

不幸的是,这是设置整行真(所以b[0][1]将被更改为True)。有关正在进行的任何想法?

编辑:

只是尝试这样的代码,它的工作:

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

为什么会在这种情况下工作,而不是前者?

回答

0

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

你的第二个版本由createing新[False, False, False]对象,每行/列避免这一点。