我有一個包含16個字符的列表。我想用這個列表來填充一個包含4個子列表的新列表。下面是我得到了什麼:爲什麼使用彈出來填充列表改變整個列表?
alist = ['H', 'e', 'l', 'l', 'o', ',', ' ', 'w', 'o', 'r', 'l', 'd', '!', ' ', '1', '2']
list4x4 = [[None]*4]*4
for i in range(4):
for j in range(4):
list4x4[i][j] = alist.pop(0)
print list4x4
這給了我
[['!', ' ', '1', '2'], ['!', ' ', '1', '2'], ['!', ' ', '1', '2'], ['!', ' ', '1', '2']]
而結果我想是
[['H', 'e', 'l', 'l'], ['o', ',', ' ', 'w'], ['o', 'r', 'l', 'd'], ['!', ' ', '1', '2']]
有人能解釋這是怎麼回事呢?謝謝
你有4個引用4個引用相同的列表相同的列表。 – geoffspear 2013-02-14 16:39:24