Python中字典合并的七种方法全集

字典是Python中常见的数据类型,表示的是键(key)与值(value)一一对应的映射关系。

字典的合并是Python中的常用操作,准确快速的字典合并可以提升程序的运行速度,本人整理了网上常见的字典合并的7种方法供大家学习参考。

特别提醒:第六种和第七种方法你可能没有见过,所以一定要看到最后。

一、dict.items()相加法

通过list把字典转化为列表后相加,然后再转化为字典。

Python中字典合并的七种方法全集_第1张图片

dic1 = {"张三":23,"李四":18,"王五":25}
dic2 = {"赵六":31, "麻八":22}
dic3 = dict(list(dic1.items()) + list(dic2.items()))
print(dic3)

二、dict.update()方法

通过dic1.update(dic2)把两个字典进行合并。

Python中字典合并的七种方法全集_第2张图片

这种update的方法,会把dic1和dic2中重复的键改写,即用dic2中的张三的值更改dic1的值。

dic1 = {"张三":23,"李四":18,"王五":25}
dic2 = {"赵六":31, "麻八":22,"张三":22}
dic1.update(dic2)
print(dic1)

三、遍历字典法

这种方法是先定义一个空字典,然后遍历dic1和dic2,然后写入到空词典中。

Python中字典合并的七种方法全集_第3张图片

代码如下:

dic1 = {"张三":23,"李四":18,"王五":25}
dic2 = {"赵六":31, "麻八":22,"张三":22}
dic3 = {}
for k,v in dic1.items():
    dic3[k] = v
for k,v in dic2.items():
    dic3[k] = v
print(dic3)

四、星号解包法

在python3.5之后,可以用星号来解包字典。

Python中字典合并的七种方法全集_第4张图片

具体的代码如下:

dic1 = {"张三":23,"李四":18,"王五":25}
dic2 = {"赵六":31, "麻八":22,"张三":22}
dic3 = {**dic1,**dic2}
print(dic3)

五、dict加星号法

这种方法是把其中一个字典用双星号解包,然后用dict把两个字典合并。

Python中字典合并的七种方法全集_第5张图片

具体的代码如下:

dic1 = {"张三":23,"李四":18,"王五":25}
dic2 = {"赵六":31, "麻八":22,"张三":22}
dic3 = dict(dic1,**dic2)
print(dic3)

六、操作符法|法

从Python 3.9开始, 字典引入了合并操作符 ( | ) 进行字典合并,操作非常简单:

Python中字典合并的七种方法全集_第6张图片源代码如下:

dic1 = {"张三":23,"李四":18,"王五":25}
dic2 = {"赵六":31, "麻八":22,"张三":22}
dic3 = dic1 | dic2
print(dic3)

七、字典推导式法

这种方法适用于键为字符型,值为数值型的字典,而且与之前的改写键值不一样的是,这种方法可以把键名重复的键值加起来或者进行运算。

Python中字典合并的七种方法全集_第7张图片

dic1 = {"张三":23,"李四":18,"王五":25}
dic2 = {"赵六":31, "麻八":22,"张三":22}
dic3 = {k:dic1.get(k,0)+dic2.get(k,0) for k in set(dic1|dic2)}
print(dic3)

八、学后反思

随着Python的不断更新,字典合并越来越简单,Python的代码也越来越优雅。如果你是高版本的Python推荐使用第六种方法,如果想把字典中键值相加,可以用第七种方法。

你可能感兴趣的:(python,基础操作,python二级,python,开发语言)