2014-10-19 74 views
0

我想創建一個二維列表F,通過反覆附加其他2維列表F。例如,假設我有以下列表xy附加2D列表

x = [[1, 2, 3], [4, 5, 6]] 
y = [[7, 8, 9], [10, 11, 12]] 

然後我想追加x一個空矩陣,然後追加y到矩陣,表單F

>>> F 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 

但是,如果我嘗試以下方法:

F = [[]] 
F.append(x) 
F.append(y) 

然後我得到的輸出:

>>> F 
[[], [[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]] 

這不是我想要的。什麼是正確的方式去做這件事?

回答

4

使用list.extend

>>> F = [] 
>>> F.extend(x) 
>>> F.extend(y) 
>>> F 
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]] 
+1

到F的任何變化也將影響x和y – 2014-10-19 01:23:31

+0

@PadraicCunningham好點+1 – grc 2014-10-19 01:29:57

1

看起來要追加元素 x和y到F,而不是x和y自己。用途:

F = x + y 

或者

F = [] 
F += x 
F += y 
2

除非你想在X或Y的變化來實現F或反之亦然,你應該做一個deepcopy

from copy import deepcopy 

F = [deepcopy(x),deepcopy(y)] 
+0

或者只是'F.extend(x [:])'等等。但我猜'deepcopy()'是一個更通用的解決方案。 – 2014-10-19 03:25:38