解压缩2D元组列表

时间:2019-03-25 20:01:19

标签: python list tuples

我正在尝试打开2D元组列表的包装。到目前为止,我所做的一切都没有给我结果

这是我要实现的目标:

Input:  [[(-8, -8), (2, 0)], [(0, 2), (-1, -1)]]    

Output = [[-8, 2], [0, -1]], [[-8, 0], [2, -1]]

我已经尝试过这样的zip,但是它不起作用。

a,b = zip(*matrixRow)

1 个答案:

答案 0 :(得分:1)

您需要两次应用zip才能进行2个换位:

inlist = [[(-8, -8), (2, 0)], [(0, 2), (-1, -1)]]

print(list(zip(*(zip(*x) for x in inlist))))

结果:

[((-8, 2), (0, -1)), ((-8, 0), (2, -1))]

因为tuples创建了它们,所以里面有zip。要获取列表,它要复杂一些,因为您必须在2个级别上转换为list

print([[list(z) for z in y] for y in zip(*(zip(*x) for x in inlist))])

打印:

[[[-8, 2], [0, -1]], [[-8, 0], [2, -1]]]