我正在尝试打开2D元组列表的包装。到目前为止,我所做的一切都没有给我结果
这是我要实现的目标:
Input: [[(-8, -8), (2, 0)], [(0, 2), (-1, -1)]]
Output = [[-8, 2], [0, -1]], [[-8, 0], [2, -1]]
我已经尝试过这样的zip,但是它不起作用。
a,b = zip(*matrixRow)
答案 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]]]