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

如何按list类型的unit值分组聚合service值?(Python字典列表处理)

解决方案

要实现按unit的内容分组,收集对应的service列表,核心是解决列表无法作为字典键的问题,同时调整分组依据。以下是可行的代码:

data = [{"service":"1","unit":["A","B"]},{"service":"2","unit":["A","B"]},{"service":"1","unit":["C"]}]

# 初始化分组字典,用元组形式的unit作为键
grouped = {}
for item in data:
    # 将unit列表转为元组(可哈希,能作为字典键)
    unit_key = tuple(item['unit'])
    # 向对应键的列表中添加service
    grouped.setdefault(unit_key, []).append(item['service'])

# 转换为期望的输出格式
output = [{"service": services, "unit": list(unit)} for unit, services in grouped.items()]
print(output)

代码说明

  • 处理列表作为键的问题:列表是可变类型,不能直接作为字典的键,因此把unit列表转换成元组(不可变、可哈希)作为分组标识。
  • 分组逻辑:遍历原始数据时,以元组形式的unit为键,将对应的service逐个添加到列表中,实现相同unit下的service收集。
  • 格式转换:最后把字典的键(元组)转回列表,和收集到的service列表组合成目标字典结构。

运行代码后,输出结果与期望一致:

[{'service': ['1', '2'], 'unit': ['A', 'B']}, {'service': ['1'], 'unit': ['C']}]

内容的提问来源于stack exchange,提问作者Jennifer Therese

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 08:42:37