首页 >后端开发 >Python教程 >如何将具有重复键的 Python 字典合并到值列表中?

如何将具有重复键的 Python 字典合并到值列表中?

DDD
DDD原创
2024-12-10 07:16:16496浏览

How Can I Merge Python Dictionaries with Duplicate Keys into Lists of Values?

在 Python 中合并具有重复键的字典

在 Python 中,处理多个字典可能具有挑战性,特别是当需要合并它们时。当字典共享重复的键时,会出现一个常见问题,目标是将与这些键关联的所有值收集到一个列表中。

解决方案:defaultdict

为了有效地处理这个问题,一个强大的 Python集合模块中名为 defaultdict 的工具开始发挥作用。它允许为字典中不存在的任何键创建默认值(在本例中为空列表)。

考虑以下示例:

d1 = {1: 2, 3: 4}
d2 = {1: 6, 3: 7}

合并这些字典,从匹配的键中收集值,我们可以使用defaultdict,如下所示:

from collections import defaultdict

dd = defaultdict(list)

for d in (d1, d2): # loop through all input dictionaries
    for key, value in d.items():
        dd[key].append(value)
    
print(dd) # result: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

在此代码:

  • 我们使用 defaultdict(list) 创建一个空的 defaultdict。
  • 我们迭代每个输入字典 d。
  • 对于每个中的每个键值对字典中,我们将值附加到与 defaultdict 中的键关联的列表中。
  • 结果是一个 defaultdict,其中键代表合并的键来自所有字典,值是包含所有相应值的列表。

该解决方案有效地从多个字典中收集与匹配键关联的所有值,提供了一种干净且通用的方式来处理重复键。

以上是如何将具有重复键的 Python 字典合并到值列表中?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn