2015-08-24 2 views
0

Что было бы хорошим путинским способом объединить мой 3D-список в 2D-файл.Слияние 3D-списка в 2D-списке: Python

a= [[[1,2],[3,4]],[[2,3],[21,18]]]

Я хочу выход:

a= [[1,2,3,4],[2,3,21,18]]

Я попытался с new =list(itertools.chain.from_iterable(a))

Это не дает желаемого результата. Это дает

a= [[1,2],[3,4],[2,3],[21,18]]

ответ

0

дать этому попытку:

a= [[[1,2],[3,4]],[[2,3],[21,18]]] 

print [list(set(sum(x, []))) for x in a] 
+0

работает частично. Но если элементы в каждом отдельном списке не уникальны, он по-прежнему делает его уникальным. – Sb92

1

Ваш (Sb92) подход почти правильно, но вместо выполнения from_iterable на внешнем списке, он должен быть применен к внутреннему списки.

Следующая будет работать:

[list(itertools.chain.from_iterable(b)) for b in a] 
+0

Да, спасибо. Виноват. Японял твою точку зрения. – Sb92

1
from itertools import chain 

a= [[[1,2],[3,4]],[[2,3],[21,18]]] 

[list(chain(*i)) for i in a] 
[[1, 2, 3, 4], [2, 3, 21, 18]] 
Смежные вопросы