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

标签 python list

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

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)]]

关于python - 列表基于 Python 中的值重新分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41445702/

相关文章:

缓冲到文件的 Python 类列表对象?

arrays - 计算列表中 k 个最大数字之和的有效方法?

c# - 为什么在此示例中使用 Tuple 比使用 List 更快?

python - 如何在 Python 中将 SVG 转换为 PNG 或 JPEG?

list - 提取列表中两个值之间的项目列表 - prolog

c# - 计算通用列表中存在的字典中值的总和

python - tensorflow上的“Illegal instruction (core dumped)”> 1.6

python - 在 SQLite 中获取(从另一个表)时插入行

Python >>= 十进制转二进制函数的帮助

python - 用于 Python 的 MySQL 连接器