在python中将3d列表展平为2d

时间:2019-07-12 10:58:44

标签: python list flatten

所以我在python中有一个列表列表,就像这样:

[[[0, 1, 0, 1, 0]]
[[1, 1, 1, 1, 1]]
[[1, 0, 0, 1, 1]]
[[0, 1, 0, 0, 0]]]

我想弄平这个列表并以这个结尾:

[[0, 1, 0, 1, 0]
[1, 1, 1, 1, 1]
[1, 0, 0, 1, 1]
[0, 1, 0, 0, 0]]

在python中有直接的方法吗?

2 个答案:

答案 0 :(得分:2)

a = [[[0, 1, 0, 1, 0]], 
[[1, 1, 1, 1, 1]], 
[[1, 0, 0, 1, 1]], 
[[0, 1, 0, 0, 0]]]    

[i[0] for i in a]     

输出

[[0, 1, 0, 1, 0], [1, 1, 1, 1, 1], [1, 0, 0, 1, 1], [0, 1, 0, 0, 0]]

答案 1 :(得分:2)

使用numpy.squeeze,您可以做自己想做的事情:

import numpy as np

a = np.array([[[0, 1, 0, 1, 0]],
              [[1, 1, 1, 1, 1]],
              [[1, 0, 0, 1, 1]],
              [[0, 1, 0, 0, 0]]])

a.squeeze()

[[0 1 0 1 0]
 [1 1 1 1 1]
 [1 0 0 1 1]
 [0 1 0 0 0]]