2014-01-24 41 views
5

列表下面是三個列表,我想結合成一個單一的嵌套列表:將多個單獨的列表到列表

List_1=[1,2,3] 
List_2=[4,5,6] 
List_3=[7,8,9] 

我嘗試:

List_x=[] 
List_x.append(List_1) 
List_x.append(List_2) 
List_x.append(List_3) 
print List_x 

結果:

[[1,2,3],[4,5,6],[7,8,9]] 

預期結果:與我得到的結果相同,但考慮到實際數據的大小,該方法非常慢。

+0

你好嗎'List_1','List_2'和'List_3'? – thefourtheye

+0

所以你想要一個包含3個列表的燈光,對吧?不是包含列表中所有元素的單個(平面)列表。 –

+0

是的,包含三個列表的單個列表。 – Tiger1

回答

7

如果您需要嵌套列表(名單列表)的毗連他們是這樣的:

>>> l1 = [1,2,3] 
>>> l2 = [4,5,6] 
>>> l3 = [7,8,9] 
>>> l123 = [l1,l2,l3] 
>>> l123 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

如果你想有一個扁平的組合列表,使用itertools.chain

>>> l1 = [1,2,3] 
>>> l2 = [4,5,6] 
>>> l3 = [7,8,9] 
>>> from itertools import chain 
>>> list(chain(*[l1,l2,l3])) 
[1, 2, 3, 4, 5, 6, 7, 8, 9] 

如果內存空間出了問題,你可以使用append

>>> l1 = [[1,2,3]] 
>>> l1.append([4,5,6]) 
>>> l1.append([7,8,9]) 
>>> l1 
[[1, 2, 3], [4, 5, 6], [7, 8, 9]] 

如果你想有一個扁平列表和內存出了問題,使用extend

>>> l1 = [1,2,3] 
>>> l1.extend([4,5,6]) 
>>> l1.extend([7,8,9]) 
>>> l1 
[1, 2, 3, 4, 5, 6, 7, 8, 9] 
+0

感謝您的解決方案alvas。 – Tiger1

+0

爲什麼最後兩個代碼片段的內存保存?我沒有看到前兩者和後者有很大區別 – zhangxaochen

相關問題