三种常用方法合并 Python 字典,你学会了吗?

在使用 Python 字典时,你有时需要将多个字典合并成一个,以便后续处理。

本教程将介绍三种常见的 Python 字典合并方法。我们将重点学习以下三种方式:

  • 使用 update() 方法
  • 字典解包
  • 并集运算符(|)

让我们开始吧!

注意:你可以在 GitHub 上找到相关代码示例。


  1. 使用 update() 方法

要合并两个字典,可以使用字典的 update() 方法。这个方法会用另一个字典的键值对更新现有字典,示例如下:

dict1.update(dict2)

这里:

  • dict1:需要被更新的原始字典。
  • dict2:其键值对将被添加到 dict1 中。

注意:此方法会直接修改原始字典。如果你不想修改原始字典,可以先创建一个副本再进行更新。

假设我们有两个包含数据库连接配置信息的字典 config1 和 config2:

config1 = {
    'database': 'Postgres',
    'host': 'localhost',
    'port': 5432
}

config2 = {
    'username': 'admin',
    'password': 'secret',
    'timeout': 30
}

现在我们将 config1 的副本与 config2 合并:

# 使用 update() 方法合并
final_config = config1.copy()  # 创建副本,避免修改原始 config1
final_config.update(config2)

print(final_config)

如上所示,update() 方法将 config2 的所有键值对添加到 final_config 中,最终得到包含所有配置信息的合并字典。

输出结果 >>>

{
    'database': 'Postgres',
    'host': 'localhost',
    'port': 5432,
    'username': 'admin',
    'password': 'secret',
    'timeout': 30
}

2. 使用字典解包:{**dict1, **dict2}

就像可以解包元组一样,也可以使用 ** 运算符解包字典。这样可以通过解包两个字典的键值对来创建一个新字典。

假设有 dict1 和 dict2 两个字典,可以这样合并:

merged_dict = {**dict1, **dict2}

合并 config 字典的示例:

config1 = {
    'database': 'Postgres',
    'host': 'localhost',
    'port': 5432
}

config2 = {
    'username': 'admin',
    'password': 'secret',
    'timeout': 30
}

# 使用字典解包合并
final_config = {**config1, **config2}

print(final_config)

字典解包方法 {**config1, **config2} 创建了一个新的 final_config 字典,其中包含了 config1 和 config2 的所有键值对。

输出结果 >>>

{
    'database': 'Postgres',
    'host': 'localhost',
    'port': 5432,
    'username': 'admin',
    'password': 'secret',
    'timeout': 30
}

3. 使用并集 | 运算符

并集运算符(|)是在 Python 3.9 新增的一种合并字典的简洁方式。

你可以这样使用:

merged_dict = dict1 | dict2

这会将 dict1 和 dict2 合并成一个新字典。

config1 = {
    'database': 'Postgres',
    'host': 'localhost',
    'port': 5432
}

config2 = {
    'username': 'admin',
    'password': 'secret',
    'timeout': 30
}

# 使用 | 运算符合并
final_config = config1 | config2

print(final_config)

| 运算符将 config1 和 config2 合并为新的 final_config 字典:

输出结果 >>>

{
    'database': 'Postgres',
    'host': 'localhost',
    'port': 5432,
    'username': 'admin',
    'password': 'secret',
    'timeout': 30
}

总结

让我们回顾一下合并 Python 字典的几种不同方法:

  • update() 方法(dict1.update(dict2))会更新已有字典。
  • {**dict1, **dict2} 使用解包方式创建一个新的合并字典。
  • 并集运算符 |(Python 3.9+)可以用简单语法 dict1 | dict2 合并字典。

这并不是合并字典的全部方法。还有其他方式,比如列表推导式、使用 collections.ChainMap 创建合并视图等。但上述方法是最常用的几种。

祝你编程愉快!

相关文章

Python3 列表list合并的4种方法

下面是列表合并的4种方法,其中的代码都在Python3下测试通过,在Python2下运行应该也没问题,时间关系就没测试。方法1: 直接使用"+"号合并列表aList = [1,2,3]...

python list列表拼接合并的三种方法

python 列表list拼接合并的三种方法使用“+”运算符,直接将所要拼接的列表list进行相加,比如[1]+[2],该方法并不修改原列表,而是以一个新的列表来返回;使用python内置的列表方法e...

用python实现两个链表的合并和排序

1、需求:已知有两个链表a和b,每个链表中的节点包括学号和成绩,要求把两个链表合并,按学号升序排序。2、输入和输出:请分别输入链表a、b元素的数量: 2 3**********************...

10行python代码系列——合并多个PDF

介绍这是一个使用Python的10行代码将多个PDF文件合并为一个PDF的应用程序。只需将源代码与PDF文件放置在同一位置,运行该代码,所有的单个PDF文件将被合并成一个新的大PDF文件。程序的功能:...

合并excel表格(使用python)

上次介绍了用Power Query合并excel表格(合并excel表格(使用Power Query)),今天,介绍用python合并excel表格。准备测试数据准备3个excel工作簿:明细1.xl...