我有一个嵌套列表,想分解它,与合并完全相反。 假设我有下面的列表:
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]
但是它不能正常工作。你知道我的错吗?
答案 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]