默认字典按键分组

0 投票
1 回答
509 浏览
提问于 2025-04-17 21:20

我有一个默认字典,里面的键和值大概是这样的:

(foo, bar) : 1
(foo2, bar2) : 2
(foo, bar3) : 3
(foo, bar8) : 5
(foo2, bar9) : 6

那么,聚合这些键的最好方法是什么呢?也就是说,我想得到类似这样的结果:

foo : {bar : 1, bar3 : 3, bar8 : 5}
foo2 : {bar2 : 2, bar9 : 6}

1 个回答

3

最简单的方法就是创建一个新的 defaultdict。假设 dd 是你最开始的字典:

aggregated = collections.defaultdict(dict)
for (key1, key2), val in dd.items():
    aggregated[key1][key2] = val

撰写回答