使用Python3.x,我有一个元组列表,如下所示(其中第一个元素是整数或字符串):
tuple_list = [(1, 'AA', 515), (1, 'BBT', 101),
(1, 'CZF', 20), (2, 'TYZ', 8341), (2, 'ONR', 11)]
在本例中,一些元组以1
开头,另一些元组以2
开头。每一个都被放在一个单独的列表中
我想用一种方法将第一个元素相同的元组“分类”到单独的列表中
在这种情况下,理想的解决方案是以下列表:
[[(1, 'AA', 515), (1, 'BBT', 101), (1, 'CZF', 20)],
[(2, 'TYZ', 8341), (2, 'ONR', 11)]]
这可以通过迭代和检查每个(唯一的)第一个元素是否存在一个列表来实现,但是对于具有比简单的1
和2
更“唯一”的第一个元素的较大列表,这在计算上是昂贵的
如何做到快速/高效
一种方法是使用
defaultdict
并将第一个元素存储为索引,然后将它们分组,如下所示:使用^{} 。与^{} 配对以实现高效的查找/切片
结果:
或使用^{}
结果:
相关问题 更多 >
编程相关推荐