You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用itertools.groupby转换分组值以提取数字列表?

解决itertools.groupby分组后提取指定元素的问题

你可以通过列表推导式提取分组后每个元组的第二个元素,修改循环内的打印逻辑即可:

from itertools import groupby
data = [('a', 1), ('b', 2), ('b', 3), ('c', 4), ('c', 5)]
_sorted_data = sorted(data, key=lambda element: element[0])
_res = groupby(_sorted_data, key=lambda x: x[0])
for key, value in _res:
    # 提取每个元组的第二个元素组成新列表
    print(key, [item[1] for item in value])

运行这段代码后,就能得到你期望的输出:

a [1]
b [2, 3]
c [4, 5]

关键说明

groupby返回的value是一个迭代器,每个元素是原数据中的完整元组(比如('b', 2))。用[item[1] for item in value]遍历这个迭代器,只保留每个元组的第二个元素,就能得到目标格式的列表。

内容的提问来源于stack exchange,提问作者Learn Hadoop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 19:42:03