2014-01-24 2 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

Если вам нужен вложенный список (список список), Concat них, как это:

>>> 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

Смежные вопросы