使用包含重叠键的多个字典时,有必要在收集与这些键关联的值时有效地合并它们。本文探讨了一种从字典集合中的匹配键组合和收集值的解决方案。
给定几个字典,例如:
d1 = {key1: x1, key2: y1} d2 = {key1: x2, key2: y2}
目标是获得合并结果作为新字典,其中每个键保存原始值的元组字典:
d = {key1: (x1, x2), key2: (y1, y2)}
该解决方案利用collections.defaultdict 创建一个字典,其默认值作为可变列表。这允许累积每个键的值:
from collections import defaultdict d1 = {1: 2, 3: 4} d2 = {1: 6, 3: 7} dd = defaultdict(list) for d in (d1, d2): # Input dictionaries can be iterated over here for key, value in d.items(): dd[key].append(value)
最终合并的字典 dd 包含映射到输入字典中的值列表的每个键。
以上是如何高效地合并重复键的字典并收集它们的值?的详细内容。更多信息请关注PHP中文网其他相关文章!