2012-09-10 110 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]對象,每行/列避免這一點。