当前位置: 首页 > article >正文

Day50:字典的合并

在 Python 中,字典是一个可变的数据类型,经常需要将多个字典合并成一个字典。合并字典的方式有多种,今天我们将学习几种常见的方法。

1. 使用 update() 方法合并字典

update() 方法可以用来将一个字典中的键值对添加到另一个字典中。如果目标字典已经包含了相同的键,原有的键值会被更新。

示例:
dict1 = {'name': 'Alice', 'age': 25}
dict2 = {'city': 'New York', 'country': 'USA'}

# 使用 update() 合并字典
dict1.update(dict2)

# 打印合并后的字典
print(dict1)

输出:

{'name': 'Alice', 'age': 25, 'city': 'New York', 'country': 'USA'}

2. 使用字典解包(**)合并字典

在 Python 3.5 及以后的版本中,使用字典解包(**)是一种非常简洁且直观的方式来合并字典。你可以将多个字典的内容解包到一个新的字典中。

示例:
dict1 = {'name': 'Alice', 'age': 25}
dict2 = {'city': 'New York', 'country': 'USA'}

# 使用字典解包合并字典
merged_dict = {**dict1, **dict2}

# 打印合并后的字典
print(merged_dict)

输出:

{'name': 'Alice', 'age': 25, 'city': 'New York', 'country': 'USA'}

3. 使用 | 运算符合并字典(Python 3.9+)

从 Python 3.9 版本开始,可以使用 | 运算符来合并字典。这种方法简洁且直观。

示例:
dict1 = {'name': 'Alice', 'age': 25}
dict2 = {'city': 'New York', 'country': 'USA'}

# 使用 | 运算符合并字典
merged_dict = dict1 | dict2

# 打印合并后的字典
print(merged_dict)

输出:

{'name': 'Alice', 'age': 25, 'city': 'New York', 'country': 'USA'}

4. 使用 collections.ChainMap 合并字典

ChainMapcollections 模块中的一个类,它可以将多个字典合并成一个视图,提供一个合并后的字典视图,但并不会创建新的字典。如果字典中有相同的键,ChainMap 会返回第一个字典中的值。

示例:
from collections import ChainMap

dict1 = {'name': 'Alice', 'age': 25}
dict2 = {'city': 'New York', 'country': 'USA'}

# 使用 ChainMap 合并字典
merged_dict = ChainMap(dict1, dict2)

# 打印合并后的字典
print(dict(merged_dict))

输出:

{'name': 'Alice', 'age': 25, 'city': 'New York', 'country': 'USA'}

5. 小结

  • 使用 update() 方法可以将一个字典的内容添加到另一个字典中,适用于更新目标字典。
  • 使用字典解包(**)提供了一种简洁的字典合并方式,适合在 Python 3.5 及以上版本中使用。
  • 从 Python 3.9 开始,可以使用 | 运算符直接合并字典,这是一个非常简洁和易懂的方法。
  • ChainMap 提供了一个合并字典的视图,适合处理多个字典的合并,但不会创建新的字典。

6. 课后练习

练习 1:使用 update() 方法合并字典

给定字典 {'name': 'Bob', 'age': 30}{'city': 'Los Angeles', 'job': 'Engineer'},使用 update() 方法合并这两个字典,并打印结果。

练习 2:使用字典解包合并字典

给定字典 {'name': 'Charlie', 'age': 25}{'city': 'Chicago', 'country': 'USA'},使用字典解包将这两个字典合并成一个新的字典。

练习 3:使用 | 运算符合并字典

给定字典 {'name': 'David', 'age': 35}{'city': 'Paris', 'job': 'Designer'},使用 | 运算符合并这两个字典,并打印合并后的字典。

练习 4:使用 ChainMap 合并字典

给定字典 {'name': 'Eva', 'age': 28}{'city': 'Berlin', 'country': 'Germany'},使用 ChainMap 合并字典并打印合并后的字典。

练习 5:合并多个字典

给定字典 dict1 = {'name': 'Frank'}, dict2 = {'age': 40}, dict3 = {'city': 'London'},使用字典解包或 update() 方法合并所有字典。


http://www.kler.cn/a/526980.html

相关文章:

  • 级数论存在重大错误的原因:中学数学对无穷数列的认识存在重大错误
  • 「AI学习笔记」深度学习的起源与发展:从神经网络到大数据(二)
  • 网络安全技术简介
  • PyTorch 快速入门
  • JAVA实战开源项目:在线文档管理系统(Vue+SpringBoot) 附源码
  • concurrent.futures.Future对象详解:利用线程池与进程池实现异步操作
  • nodejs:express + js-mdict 网页查询英汉词典
  • 算法基础——存储
  • 智能小区物业管理系统推动数字化转型与提升用户居住体验
  • 实测数据处理(Wk算法处理)——SAR成像算法系列(十二)
  • 如何让一个用户具备创建审批流程的权限
  • OpticStudio 中的全息图建模 – 反射形式
  • 在Windows中 基于Oracle GoldenGate (OGG)进行MySQL-gt;MySQL数据库同步配置(超详细)_ogg-15146
  • 【MyDB】4-VersionManager 之 4-VM的实现
  • EtherCAT主站IGH-- 24 -- IGH之fsm_slave_config.h/c文件解析
  • CSS 值和单位详解:从基础到实战
  • NX/UG二次开发—CAM—快速查找程序参数名称
  • 使用Pygame制作“Flappy Bird”游戏
  • homebrew-usage
  • Intellij IDEA如何进入初始化页面?
  • AI智慧社区--用户登录JWT令牌校验
  • Vue.js组件开发-实现全屏焦点图片带图标导航按钮控制图片滑动切换
  • 服务器虚拟化实战:架构、技术与最佳实践
  • 使用Pygame制作“打砖块”游戏
  • 二.java开发项目 常用hutool aop mybatisplue依赖2.
  • 分布式架构中的事务管理:需要了解的常见解决方案