Python 之 字典合并的几种方式

欢迎大家扫码关注我的微信公众号:
数据之恋

Python 之 字典合并的几种方式-目录

  • 一、什么是字典
  • 二、字典合并的几种方式
    • 2.1 for 循环的方式
    • 2.2 dict(a, **b) 的方式
    • 2.3 dict(a.items() + b.items()) 的方式
    • 2.4 dict.update(other_dict) 的方式

一、什么是字典

字典是一种可变的容器模型,且可存储任意类型对象, 如字符串、 数字、 元组、 对象等其他容器模型。 其内保存的是一个个的键值对。
字典的每个键值 key, value 对用冒号 : 分割,每个键值对之间用逗号 , 分割, 整个字典包括在花括号 { } 中。

相信大家对字典的增、 删、 改、查的方法都已经很熟悉, 今天我来介绍几种直接合并两个字典的方法。

二、字典合并的几种方式

2.1 for 循环的方式

比较经典的合并字典的方式是使用 for 循环:

>>> a = {1: 'a', 2: 'aa'}
>>> b = {3: 'aaa', 4: 'aaaa'}
>>> for k, v in b.items():
...     a[k] = v
...
>>> a
{1: 'a', 2: 'aa', 3: 'aaa', 4: 'aaaa'}
>>>

2.2 dict(a, **b) 的方式

大家都知道我们可以使用 **dict 的方式打开一个字典类型的数据, 我们可以使用 dict 方法并借助这种方式实现两个字典的合并:

>>> a = {1: 'a', 2: 'aa'}
>>> b = {3: 'aaa', 4: 'aaaa'}
>>> dict(a, **b)
{1: 'a', 2: 'aa', 3: 'aaa', 4: 'aaaa'}
>>>

【注意】此时, 会返回一个新的字典。

2.3 dict(a.items() + b.items()) 的方式

dict.items() 能够得到一个包含以该字典的键与值为元素组成的元组的列表:

>>> a = {1: 'a', 2: 'aa'}
>>> a.items()
[(1, 'a'), (2, 'aa')]

两个列表实现 + 运算, 即是将两个列表合并, 而 dict() 方法可以接收类似于上面例子中的数据结构来组装并返回一个字典类型的数据, 所以我们可以使用 dict(a.items() + b.items()) 的方法来合并 a、 b 两个字典:

>>> a = {1: 'a', 2: 'aa'}
>>> b = {3: 'aaa', 4: 'aaaa'}
>>> dict(a.items() + b.items())
{1: 'a', 2: 'aa', 3: 'aaa', 4: 'aaaa'}

【注意】此时同样会返回一个新的字典。

2.4 dict.update(other_dict) 的方式

直接调用字典的 update() 方法, 同样可以将两个字典合并

>>> a = {1: 'a', 2: 'aa'}
>>> b = {3: 'aaa', 4: 'aaaa'}
>>> a.update(b)
>>> a
{1: 'a', 2: 'aa', 3: 'aaa', 4: 'aaaa'}

【注意】此时同样实现了两个字典的合并, 但是需要注意的是 a.update(b) 的方式并没有返回一个新的字典, 而是将字典 a 进行了 “更新”, 此时的返回值是 None。


http://www.niftyadmin.cn/n/732623.html

相关文章

python index函数是左闭右开吗_为什么 Python 的 Range 要设计成左开右闭区间?

Python 的 Range 是左开右闭的&#xff0c;而且除了 Python 的 Range&#xff0c;还有各种语言&#xff0c;如 Swift 语言的 ..< 运算符之类的也有类似这样的设计。关于 Range 为什么要这样设计这个问题&#xff0c;Edsger W. Dijkstra 在1982年写过一篇短文章分析了一下其中…

python判断字符类型例题_python-数据类型练习题1

1、有变量name "aleX leNb" 完成如下操作&#xff1a; 移除name变量对应的值两边的空格,并输出处理结果 n1 name.strip() print(n1) 结果&#xff1a;aleX leNb 移除name变量左边的al并输出处理结果 n2 name.lstrip(al) print(n2) 结果&#xff1a;eX leNb 移除na…

Nginx 之一 服务器的安装部署(一): LInux 环境下 Nginx 服务器的安装和基本配置

欢迎大家扫码关注我的微信公众号&#xff1a; Nginx 服务器的安装部署&#xff08;一&#xff09;-目录一、编译和安装前的准备工作1.1 足够的磁盘空间1.2 需要的工具二、Nginx 软件的自动脚本三、Nginx 源代码的编译和安装一、编译和安装前的准备工作 本博客依赖环境&#x…

js 上传文件_js精准判断上传文件类型

前言一般来说&#xff0c;对于上传的文件&#xff0c;都要做类型过滤&#xff0c;指定哪些类型能上传&#xff0c;哪些不能上传。最容易想到的&#xff0c;也是相对常用的&#xff0c;是直接使用文件的拓展名。但拓展名可以手动修改&#xff0c;做不到精准&#xff0c;比如把一…

Python Cookbook 之一 数据结构和算法(一): 将序列分解为单独的变量

欢迎大家扫码关注我的微信公众号&#xff1a; 将序列分解为单独的变量-目录一、问题二、解决方案三、讨论一、问题 一个包含 N 个元素的元组或序列&#xff0c; 现在想将它分解为 N 个单独的变量。 二、解决方案 任何序列&#xff08;或可迭代对象&#xff09;都可以通过一…

Python Cookbook 之一 数据结构和算法(二): 从任意长度的可迭代对象中分解元素

欢迎大家扫码关注我的微信公众号&#xff1a; 从任意长度的可迭代对象中分解元素一、问题二、解决方案2.1 * 表达式在首位2.2 * 表达式在中间2.3 * 表达式在末位三、讨论一、问题 需要从某个可迭代对象中分解出 N 个元素&#xff0c; 但是这个可迭代对象的长度可能超过 N&…

Nginx 之一 服务器的安装部署(二): Nginx 服务的启停控制

欢迎大家扫码关注我的微信公众号&#xff1a; Nginx 服务器的安装部署&#xff08;二&#xff09;-目录一、Nginx 服务的信号控制1.1 获取 Nginx 服务主进程 PID1.2 Nginx 服务可接收的信号二、Nginx 服务的启动三、Nginx 服务的停止3.1 停止方式一&#xff1a;3.2 停止方式二…

Python Cookbook 之一 数据结构和算法(三): 保存最后 N 个元素

欢迎大家扫码关注我的微信公众号&#xff1a; 保存最后 N 个元素一、问题二、解决方案三、讨论一、问题 我们希望在迭代或是其他形式的处理过程中对最后几项记录做一个有限的历史记录统计。 二、解决方案 保存有限的历史记录可算是 collections.deque 的完美应用场景了。 …