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

无需Pandas GroupBy:Python字典按坐标键分组聚合

原生Python实现坐标键的字典值聚合

问题场景示例

假设你有这样的原始字典:

original_dict = {
    ((1, 2), 'up'): 'value1',
    ((1, 2), 'down'): 'value2',
    ((3, 4), 'left'): 'value3',
    ((5, 6), 'right'): 'value4',
    ((3, 4), 'up'): 'value5'
}

纯原生字典实现(无额外依赖)

直接用普通字典遍历处理,逻辑清晰:

aggregated_dict = {}

# 遍历原字典的键值对,解构出坐标和方向
for (coord, _), value in original_dict.items():
    # 如果坐标未在新字典中,初始化空列表
    if coord not in aggregated_dict:
        aggregated_dict[coord] = []
    # 将对应值添加到列表
    aggregated_dict[coord].append(value)

执行后得到的结果:

{(1, 2): ['value1', 'value2'], (3, 4): ['value3', 'value5'], (5, 6): ['value4']}

用collections.defaultdict简化代码(标准库原生)

如果想让代码更简洁,可以用Python标准库的defaultdict,省去判断键是否存在的步骤:

from collections import defaultdict

aggregated_dict = defaultdict(list)
for (coord, _), value in original_dict.items():
    aggregated_dict[coord].append(value)

# 可选:将defaultdict转为普通字典
aggregated_dict = dict(aggregated_dict)

两种方案都完全基于原生Python实现,不需要引入Pandas的GroupBy模块。

内容的提问来源于stack exchange,提问作者Anonymous Person

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:44:16