2015-07-15 4 views
2

Предположим, что у меня есть два списка дается,2d список в 3d список в Python

list1 = [[2,3,1,3],[2,4,6,2]] 

list2 = [[1,2,3,4],[4,3,2,1]] 

Как бы один преобразовать в 3D-список?

Так что для доступа list1, один будет:

list3[0] = list1 

list3[1] = list2 

, где печать песни3 обеспечит:

[[[2,3,1,3],[2,4,6,2]],[[1,2,3,4],[4,3,2,1]]] 

Я пытался добавить, но это не похоже на работу.

+0

уточнить ваш вопрос как списки и кортежи списков не совпадают. – Andersson

ответ

1

Вы на самом деле нужно deepcopy кортежей/списки, чтобы избежать создания ссылок:

list1 = [2,3,1,3],[2,4,6,2] 

list2 = [1,2,3,4],[4,3,2,1] 

from copy import deepcopy 

l3 = list(map(list, map(deepcopy,(list1, list2)))) 


print(l3[0]) 
print(l3[1]) 
[[2, 3, 1, 3], [2, 4, 6, 2]] 
[[1, 2, 3, 4], [4, 3, 2, 1]] 

Если у вас есть списки на самом деле не кортежей вы можете удалить внешнюю карту:

l3 = list(map(deepcopy,(list1, list2))) 
+0

Звонки 'zip' не нужны. – TigerhawkT3

3
list1 = [[2,3,1,3],[2,4,6,2]] 
list2 = [[1,2,3,4],[4,3,2,1]] 
list3 = [list1, list2] 
+1

Я не уверен, почему этот ответ спорный, но он создает желаемую структуру данных самым простым способом. – TigerhawkT3

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