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,一经查实,立即删除!

相关文章

USB鼠标的数据格式

USB鼠标的数据格式由HID&#xff08;Human Interface Device&#xff09;协议定义&#xff0c;通常包含3个字节的标准数据&#xff0c;具体格式如下&#xff1a; 字节内容描述第1字节按键状态Bit 0: 左键按下&#xff08;1&#xff09;<br>Bit 1: 右键按下&#xff08;1…

为AI聊天工具添加一个知识系统 之79 详细设计之20 正则表达式 之7

本文要点 要点 “正则表达式” 本来是计算机科学计算机科学的一个概念。本项目将它推广&#xff08;扩张&#xff09;到认知科学的“认知范畴”概念&#xff0c; 聚合&#xff08;收敛&#xff09;到 神经科学 的“神经元”概念。 做法是&#xff1a;用reg 来系统化定义认知…

Spring RESTful API 设计与实现

Spring RESTful API的设计与实现极大地提升了开发效率和系统可维护性,通过遵循RESTful设计原则,使得API结构清晰、行为一致,便于扩展和维护。它在构建微服务架构中扮演着核心角色,支持松耦合的通信,同时通过标准的HTTP协议和数据格式增强了系统的互操作性。结合Spring Sec…

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

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

猿人学web 19题(js逆向)

这题直接点击翻页抓包&#xff0c;然后获取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语言:编译和链接(详解)

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

如何解决Unit sshd.service could not be found

出现 Unit sshd.service could not be found 错误时&#xff0c;通常是因为系统中未安装 OpenSSH 服务、服务名称不匹配或系统未使用 systemd 管理服务。以下是详细的解决方案&#xff1a; 一、确认 SSH 服务是否安装 1. 检查是否已安装 OpenSSH 服务器 不同 Linux 发行版的包…

积分和微分的区别

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

OVS-DPDK

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

【Go语言圣经】第六节:方法

第六章&#xff1a;方法 6.1 方法声明 在函数声明时&#xff0c;在其名字之前放上一个变量&#xff0c;这就是声明了变量对应类型的一个方法&#xff0c;相当于为这种类型定义了一个独占的方法。 下例为 Point 类型声明了计算两个点之间距离的方法&#xff1a; package mai…

matlab的.mat文件怎么把表格中的值全部设置为空

在MATLAB中&#xff0c;如果您想要将.mat文件中的表格&#xff08;table&#xff09;中的所有值设置为空&#xff0c;您可以先加载该.mat文件&#xff0c;然后修改表格中的数据&#xff0c;最后保存修改后的表格。以下是一个具体的步骤示例&#xff1a; 加载.mat文件&#xff1…

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

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

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

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

Java进阶six junit单元测试,反射,注解,动态代理

前言 Java进阶课程的第六篇&#xff0c;也是最后一篇&#xff0c;junit单元测试,反射,注解,动态代理相关内容 包含知识点 junit单元测试 反射 1.内部类Student&#xff1a; 包含私有/公共字段和方法 包含默认构造器和私有构造器 2.获取Class对象的三种方式&#xff1a; .…

程序代码篇---Python随机数

文章目录 前言Python随机数函数random.random()random.randint(a,b)random.randrange(start,stop[,step])random.uniform(a,b)random.choice(sequence)random.sample(population,k)random.shuffle(x[,random])random.seed(aNone) 总结 前言 以上就是今天要讲的内容&#xff0c…

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

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

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

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

半导体SAP管理系统:数字化转型的驱动力

在当今全球科技竞争日益激烈的背景下&#xff0c;半导体行业作为信息技术的基石&#xff0c;其生产效率、质量控制和成本优化直接关系到企业的市场竞争力和可持续发展。随着数字化转型的深入&#xff0c;半导体企业纷纷寻求高效、智能的管理系统以提升运营效率。SAP管理系统&am…

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

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

使用Redis生成全局唯一ID示例

全局ID生成器,一种在分布式系统下用来生成全局唯一ID的工具,一般满足一下要求特性 1.唯一性 2.高性能 3.安全性 4.递增性 5.高可用 Component public class RedisIdWorker {/*** 定义一个开始的时间戳(秒级)* param args*/private static final long BEGIN_TIMESTAMP 16…