如何分解嵌套列表?

时间:2018-11-23 07:04:17

标签: python-3.x list

我有一个嵌套列表,想分解它,与合并完全相反。 假设我有下面的列表:

f=[[1,2,3],[1,2,3],[1,2,3],[1,2,3]]

我正在尝试获取:

a1=[1,1,1,1]
a2=[2,2,2,2]
a3=[3,3,3,3]

我已经尝试过以下命令:

a1=f[:][0:1]
a2=f[:][1:2]
a3=f[:][2:3]

但是它不能正常工作。你知道我的错吗?

4 个答案:

答案 0 :(得分:-1)

尝试一下:

f=[[1,2,3],[1,2,3],[1,2,3],[1,2,3]]

for i in zip(*f):
    print(i)

输出:

(1, 1, 1, 1)
(2, 2, 2, 2)
(3, 3, 3, 3)

答案 1 :(得分:-1)

zip()与*运算符一起可用于解压缩列表,并返回元组的迭代器。

使用map()list应用于我们从zip得到的元组的迭代器,它返回一个迭代器。然后将迭代器传递到list()

a = list(map(list, zip(*f)))

a = []
for i in iter(map(list, zip(*f))):
    a.append(i)

答案 2 :(得分:-1)

您应该在这里使用for循环。

f=[[1,2,3],[1,2,3],[1,2,3],[1,2,3]]
a1=[x[0] for x in f]
a2=[x[1] for x in f]
a3=[x[2] for x in f]
print(a1,a2,a3)

>>>[1, 1, 1, 1] [2, 2, 2, 2] [3, 3, 3, 3]

答案 3 :(得分:-1)

您可以这样做,如下所示:

a = [list(i) for i in zip(*f)]

现在:

a[0]将是[1, 1, 1, 1]

a[1]将是[2, 2, 2, 2]

a[2]将是[3, 3, 3, 3]