3 回答

TA贡献1813条经验 获得超2个赞
尝试使用 simple zipwith *:
a = [
[('0','2'), ('0','2'), ('1','0')],
[('2','2'), ('0','0'), ('0','2')],
[('0','0'), ('2','1'), ('2','1')],
[('0','2'), ('2','0'), ('0','2')]
]
list(zip(*a))
输出将是:
[(('0', '2'), ('2', '2'), ('0', '0'), ('0', '2')),
(('0', '2'), ('0', '0'), ('2', '1'), ('2', '0')),
(('1', '0'), ('0', '2'), ('2', '1'), ('0', '2'))]

TA贡献1856条经验 获得超5个赞
也许做这样的事情:
a = [[('0','2'), ('0','2'), ('1','0')],
[('2','2'), ('0','0'), ('0','2')],
[('0','0'), ('2','1'), ('2','1')],
[('0','2'), ('2','0'), ('0','2')]]
res = list(map(list, (zip(*a))))
print(res)

TA贡献1942条经验 获得超3个赞
如果您的输出不是元组列表,您也可以使用 numpy 执行此操作:
import numpy as np
arr = np.transpose([[('0','2'), ('0','2'), ('1','0')],
[('2','2'), ('0','0'), ('0','2')],
[('0','0'), ('2','1'), ('2','1')],
[('0','2'), ('2','0'), ('0','2')]], axes=[1,0,2])
它将返回一个 3D ndarray。
添加回答
举报