python - Groupby 列表中的多列

标签 python

我有如下列表

[['H1','L', '1']
['H1','S', '1']
['H2','L', '1']
['H2','L', '1']]

并希望基于 column1 和 column2 进行分组。 python 是否在列表中提供了我可以获得以下结果的任何内容

H1 L 1
H1 S 1
H2 L 2

最佳答案

您可以使用 itertools.groupby , 并对每组的最后一列求和。

from itertools import groupby

out = []
for k, v in groupby(l, key=lambda x: x[:2]):
    s = sum([int(x[-1]) for x in v])
    out.append(k + [s])

print (out)
# [['H1', 'L', 1], ['H1', 'S', 1], ['H2', 'L', 2]]

关于python - Groupby 列表中的多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48619098/

相关文章:

python - QMediaPlayer 在 PyQt4 中不可用?

python - 如何将基数 10 转换为基数 X?

python - 在 Python 中处理大量输入变量的最佳方法是什么?

python - 从 numpy 数组中提取不在索引列表中的元素

python - 如何快速比较两个文件?

Python文件读写

python - Django 管理操作的权限

Python Instagram API - API 请求失败

python - 使用标题/列名称使 CSV 文件更容易在 Python 中修改/导航?

python - 在 BeautifulSoup 中插入新构造的元素