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 ChainMapdict1 = {'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.mzph.cn/news/894292.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“新月之智”智能战术头盔系统(CITHS)

新月人物传记:人物传记之新月篇-CSDN博客 相关文章链接(更新): 星际战争模拟系统:新月的编程之道-CSDN博客 新月智能护甲系统CMIA--未来战场的守护者-CSDN博客 目录 一、引言 二、智能头盔控制系统概述 三、系统架…

猿人学web 19题(js逆向)

这题直接点击翻页抓包,然后获取seesion ID请求即可 求和代码 import requestssession requests.Session() cookies {sessionid:eao9i00r8pt4xu6uzzx2k01ttqn51yc9} urlhttps://match.yuanrenxue.cn/api/match/19?page sum0 for i in range(1,6):response sess…

c语言:编译和链接(详解)

前言 要将编译和链接,就不得不提及编译器是如何运作的,虽然这部分知识是针对于要创造编译器和创作语言的人所需要清楚的,但作为c语言的学习者也需要了解一下,修炼内功,尤其是对于想学习c的人而言。 编译器的运作过程…

积分和微分的区别

积分: 积分是由微小量求大量,由微观的数据求得整体的状况。运算是对总量求和。 微分: 微分是由大量求微小量,反应微观的状况,运算是伴随着求导。 峰值检测电路: 上图检测的误差主要来自与二极管的正向导通电压降&am…

OVS-DPDK

dpdk介绍及应用 DPDK介绍 DPDK(Data Plane Development Kit)是一组快速处理数据包的开发平台及接口。有intel主导开发,主要基于Linux系统,用于快速数据包处理的函 数库与驱动集合,可以极大提高数据处理性能和吞吐量&…

亚博microros小车-原生ubuntu支持系列:18 Cartographer建图

Cartographer简介 Cartographer是Google开源的一个ROS系统支持的2D和3D SLAM(simultaneous localization and mapping)库。基于图优化(多线程后端优化、cere构建的problem优化)的方法建图算法。可以结合来自多个传感器&#xff0…

安卓(android)实现注册界面【Android移动开发基础案例教程(第2版)黑马程序员】

一、实验目的(如果代码有错漏,可查看源码) 1.掌握LinearLayout、RelativeLayout、FrameLayout等布局的综合使用。 2.掌握ImageView、TextView、EditText、CheckBox、Button、RadioGroup、RadioButton、ListView、RecyclerView等控件在项目中的…

爬虫基础(四)线程 和 进程 及相关知识点

目录 一、线程和进程 (1)进程 (2)线程 (3)区别 二、串行、并发、并行 (1)串行 (2)并行 (3)并发 三、爬虫中的线程和进程 &am…

自签证书的dockerfile中from命令无法拉取镜像而docker的pull命令能拉取镜像

问题现象: docker pull images拉取镜像正常 dockerfile中的from命令拉取镜像就会报出证书错误。报错信息如下: [bjxtbwj-kvm-test-jenkins-6-243 ceshi_dockerfile]$ docker build . [] Building 0.4s (3/3) FINISHED …

计算机网络 IP 网络层 2 (重置版)

IP的简介: IP 地址是互联网协议地址(Internet Protocol Address)的简称,是分配给连接到互联网的设备的唯一标识符,用于在网络中定位和通信。 IP编制的历史阶段: 1,分类的IP地址: …

面对企业文件交换难题,镭速跨网文件交换系统是如何解决的?

在当今这个数字化快速发展的时代,企业越来越依赖于数据交换来维持其业务运作。无论是内部网络之间的沟通还是与外部合作伙伴的数据共享,高效且安全的跨网文件交换都显得尤为重要。然而,在实际操作中,许多企业面临着各种各样的挑战…

Many Whelps! Handle It! (10 player) Many Whelps! Handle It! (25 player)

http://db.nfuwow.com/80/?achievement4403 http://db.nfuwow.com/80/?achievement4406 最少扣你50DKP! 第二阶段 当奥妮克希亚升空后,在10秒内引出50只奥妮克希亚雏龙,随后击败奥妮克希亚。 World of Warcraft [CLASSIC][80猎人][Grandel][最少扣你5…

自制虚拟机(C/C++)(一、分析语法和easyx运用,完整虚拟机实现)

网上对虚拟机的解释很多,其实本质就一句话 虚拟机就是机器语言解释器 我们今天要实现汇编语言解释器,下一次再加上ndisasm反汇编器就是真正虚拟机了 注:这里的虚拟机指的是VMware一类的,而不是JVM,python一样的高级语言解释器 …

36. printf

1. printf 格式化函数说的是 printf、 sprintf 和 scanf 这样的函数,分为格式化输入和格式化输出两类函数。学习 C 语言的时候常常通过 printf 函数在屏幕上显示字符串,通过 scanf 函数从键盘获取输入。这样就有了输入和输出了,实现了最基本…

实验八 JSP访问数据库

实验八 JSP访问数据库 目的: 1、熟悉JDBC的数据库访问模式。 2、掌握使用My SQL数据库的使用 实验要求: 1、通过JDBC访问mysql数据,实现增删改查功能的实现 2、要求提交实验报告,将代码和实验结果页面截图放入报告中 实验过程&a…

python学opencv|读取图像(四十六)使用cv2.bitwise_or()函数实现图像按位或运算

【0】基础定义 按位与运算:全1取1,其余取0。按位或运算:全0取0,其余取1。 【1】引言 前序学习进程中,已经对图像按位与计算进行了详细探究,相关文章链接如下: python学opencv|读取图像&…

使用vhd虚拟磁盘安装两个win10系统

使用vhd虚拟磁盘安装两个win10系统 前言vhd虚拟磁盘技术简介准备工具开始动手实践1.winX选择磁盘管理2.选择“操作”--“创建VHD”3.自定义一个位置,输入虚拟磁盘大小4.右键初始化磁盘5.选择GPT分区表格式6.右键新建简单卷7.给卷起个名字,用于区分8.打开…

基于云计算、大数据与YOLO设计的火灾/火焰目标检测

摘要:本研究针对火灾早期预警检测需求,采用在Kaggle平台获取数据、采用云计算部署的方式,以YOLOv11构建模型,使用云计算服务器训练模型。经训练,box loss从约3.5降至1.0,cls loss从约4.0降至1.0&#xff0c…

计算机毕业设计Python+CNN卷积神经网络考研院校推荐系统 考研分数线预测 考研推荐系统 考研爬虫 考研大数据 Hadoop 大数据毕设 机器学习

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

小程序-基础加强-自定义组件

前言 这次讲自定义组件 1. 准备今天要用到的项目 2. 初步创建并使用自定义组件 这样就成功在home中引入了test组件 在json中引用了这个组件才能用这个组件 现在我们来实现全局引用组件 在app.json这样使用就可以了 3. 自定义组件的样式 发现页面里面的文本和组件里面的文…