Skip to main content
 首页 » 编程设计

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

2025年05月04日10pander-it

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

[('0','2'), ('0','2'), ('1','0')] 
[('2','2'), ('0','0'), ('0','2')] 
[('0','0'), ('2','1'), ('2','1')] 
[('0','2'), ('2','0'), ('0','2')] 

我想创建一组新的列表,其中包含按列表中出现顺序排列的元组。例如在上面的例子中,我想要的输出是:

[('0','2'), ('2','2'), ('0','0'), ('0','2')] 
[('0','2'), ('0','0'), ('2','1'), ('2','0')] 
[('1','0'), ('0','2'), ('2','1'), ('0','2')]  

我什至无法思考如何解决这个问题,因为元组没有唯一的键值,而实际列表每个包含大约 500 个元组。在列表中的位置是我的新分组的重要品质。如果有帮助,每个列表都在文件的新行中。

有人有什么建议吗?

请您参考如下方法:

通过使用带有 * 的简单 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)) 

输出将是:

[(('0', '2'), ('2', '2'), ('0', '0'), ('0', '2')), 
 (('0', '2'), ('0', '0'), ('2', '1'), ('2', '0')), 
 (('1', '0'), ('0', '2'), ('2', '1'), ('0', '2'))]