首页 >后端开发 >Python教程 >如何有效地将具有匹配键的 Python 字典合并到值元组中?

如何有效地将具有匹配键的 Python 字典合并到值元组中?

Linda Hamilton
Linda Hamilton原创
2024-12-22 14:25:17952浏览

How Can I Efficiently Merge Python Dictionaries with Matching Keys into Tuples of Values?

将字典与匹配键合并:教程

在 Python 中,通过组合与匹配键关联的值来合并字典是一项常见任务。让我们探索一种有效实现这一目标的方法。

问题陈述

给定多个带有键值对的字典,例如:

d1 = {key1: x1, key2: y1}
d2 = {key1: x2, key2: y2}

目标是创建一个新字典,其中每个键都有一个来自输入字典的相应值的元组。例如,所需的结果将是:

d = {key1: (x1, x2), key2: (y1, y2)}

解决方案:利用 defaultdict

从匹配键收集值时合并字典的一种有效方法是利用集合模块中的 defaultdict 类。下面是分步演示:

  1. 定义一个 defaultdict 对象,它会自动为缺失的键创建列表。
  2. 迭代输入字典。
  3. 对于每个字典,对于每个键值对,将值附加到与 defaultdict 中的键关联的列表中。
  4. 结果defaultdict 将具有代表所有输入字典中的原始键的键,以及包含相应值的列表的值。

代码实现

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2):
    for key, value in d.items():
        dd[key].append(value)

print(dd)  # defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

通过以下方式通过这些步骤,您可以有效地合并具有匹配键的字典,并将它们的关联值组合到一个新字典中。

以上是如何有效地将具有匹配键的 Python 字典合并到值元组中?的详细内容。更多信息请关注PHP中文网其他相关文章!

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