cell={'num':0,'state':1}
cell_2d=[]
cell_list=[]
for i in range(2):
for j in range(2):
cell_list=cell_list+[cell]
cell_2d=cell_2d+[cell_list]
cell_list=[]
print "initially:"
print cell_2d
cell_2d[0][0]['num']=-1
print "finally:"
print cell_2d
輸出一個2維陣列(字典的列表的列表)是:問題得到
最初: [[{ '州':1 'NUM':0},{ '州' :1,'num':0}],[{'state':1,'num':0},{'state':1,'num':0}]] finally: [[{'state ':1,'num':-1},{'state':1,'num':-1}],[{'state':1,'num':-1},{'state':1 ,'num':-1}]]
當執行第11行時,我希望只有第一個cell_2d列表的第一個元素被改變。但是輸出顯示cell_2d的所有元素的所有'num'都被更改爲-1。無法弄清爲什麼會發生這種情況。有人可以告訴我代碼有什麼錯誤嗎?提前Thanx。
你可以編輯你的答案,並使用101010按鈕來標記代碼段,所以它們被格式化爲代碼? – 2010-11-21 12:37:11