合并2D列表中的3D列表:Python

时间:2015-08-24 17:29:08

标签: list python-2.7

将我的3D列表合并为2D列表会有什么好的pythonic方法。

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

3 个答案:

答案 0 :(得分:1)

您的(Sb92)方法几乎是正确的,但不是在外部列表上执行from_iterable,而是需要将其应用于内部列表。

以下方法可行:

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

答案 1 :(得分: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]]

答案 2 :(得分:0)

尝试一下:

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

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