按列表中的元组顺序将多个元组列表组合成新的元组列表(python3)

Mat*_*lar 1 python tuples list python-3.x

我有多个包含两个值的元组列表,例如:

[('0','2'), ('0','2'), ('1','0')]
[('2','2'), ('0','0'), ('0','2')]
[('0','0'), ('2','1'), ('2','1')]
[('0','2'), ('2','0'), ('0','2')]
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的列表集,其中包含它们在列表中出现的顺序的元组.例如,在上面的例子中,我想要的输出是:

[('0','2'), ('2','2'), ('0','0'), ('0','2')]
[('0','2'), ('0','0'), ('2','1'), ('2','0')]
[('1','0'), ('0','2'), ('2','1'), ('0','2')] 
Run Code Online (Sandbox Code Playgroud)

我无法考虑如何处理此问题,因为元组没有唯一的键值,实际列表每个包含大约500个元组.列表中的位置是我新分组的重要质量.如果有帮助,每个列表都在文件的新行上.

有人有建议吗?

Meh*_*far 8

尝试使用简单zip*:

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))
Run Code Online (Sandbox Code Playgroud)

输出将是:

[(('0', '2'), ('2', '2'), ('0', '0'), ('0', '2')),
 (('0', '2'), ('0', '0'), ('2', '1'), ('2', '0')),
 (('1', '0'), ('0', '2'), ('2', '1'), ('0', '2'))]
Run Code Online (Sandbox Code Playgroud)