Skip to main content
 首页 » 编程设计

python之列表基于 Python 中的值重新分组

2025年05月04日25cloudgamer

我一直在尝试转换一些数据,每个组中的第一个值是组标识符:

data = [(a, 1, 2), (a, 3, 4), (b, 5, 6)] 

进入

data = [[(1, 2), (3, 4)], [(5, 6)]] 

最简单的方法是什么?提前致谢

请您参考如下方法:

如果data 列表是按分组键排序的,你可以使用itertools.groupby :

In [1]: from itertools import groupby 
 
In [2]: from operator import itemgetter 
 
In [3]: data = [(a, 1, 2), (a, 3, 4), (b, 5, 6)] 
 
In [4]: [[l[1:] for l in group] for _, group in groupby(data, key=itemgetter(0))] 
Out[4]: [[(1, 2), (3, 4)], [(5, 6)]]