Python 字典合并、求和大作战,轻松搞定各路数据

在使用 Python 采集来自不同渠道的数据,很多都是以字典的形式存储。将它们合并、处理是经常使用的进本操作,在本文中,我们将介绍多种合并和求和字典的方法。

合并词典是指涉及将多个词典中的键值对合并到一个词典中,适合整合来自不同来源的数据。字典求和指在合并字典时对键相同的相应值相加,适合在处理统计数值数据。

使用 "|" 求字典的并集

在 Python 3.9 ,引入了一个专用的并集运算符,用于轻松合并字典。

dict1 = {"a": 1, "b": 2} 
dict2 = {"b": 3, "d": 4}
dict3 = dict1 | dict2
print(dict3) 

使用 update() 方法合并字典

update() 方法组合两个字典,将一个字典中的键值对合并到另一个字典中。如果目标字典中已存在键,则更新该键的值。否则,将添加新的键值对。此方法不会对键值求和。

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'd': 4}
dict1.update(dict2)
print(dict1) # 输出:{'a': 1, 'b': 3, 'd': 4}

使用循环合并字典

循环迭代两个字典中的项目并将它们添加到新词典中。如果新字典中已存在键,则更新该键的值。

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'd': 4}
dict3 = {}
for key, value in dict1.items():
    dict3[key] = value
for key, value in dict2.items():
    dict3[key] = value
print(dict3) # 输出:{'a': 1, 'b': 3, 'd': 4}

使用解包方法合并字典

使用两个星号(**)对字典进行解包合并,此方法不会对相同键的值求和。

dict1 = {"a": 1, "b": 2} 
dict2 = {"b": 3, "d": 4}
dict3 = {**dict1, **dict2}
print(dict3)  # 输出:{'a': 1, 'b': 3, 'd': 4}

使用字典推导对键值求和

如果想合并两个字典并对相同的键进行求和,可以创建两个集合的键的并集,并从这些键创建一个新字典。get() 方法检索每个键的值,如果字典中不存在该键,则默认为 0。

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'd': 4}
dict3 = {key: dict1.get(key, 0) + dict2.get(key, 0) for key in set(dict1) | set(dict2)}
print(dict3) # 输出:{'a': 1, 'b': 5, 'd': 4}

使用 collections 对键值求和

使用 Counter 从每个字典创建计数器。然后,合并计数器,对相同键的值求和。

from collections import Counter
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
count_dict1 = Counter(dict1)
count_dict2 = Counter(dict2)
count_dict3 = count_dict1 + count_dict2
print(dict(count_dict3)) # 输出:{'a': 1, 'b': 5, 'c': 4}

使用 defaultdict 设置一个字典为默认值,当访问一个不存在的键时,它会返回一个默认值而不是抛出 KeyError 异常。

from collections import defaultdict
dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
dict3 = defaultdict(int, dict1)
for key, value in dict2.items():
    dict3[key] += value
print(dict3)

<script type="text/javascript" src="//mp.toutiao.com/mp/agw/mass_profit/pc_product_promotions_js?item_id=7459588830274912808"></script>

相关文章

探索 Python 中合并两个字典的七种方法,找到最适合你的那一款!

在 Python 的世界里,字典作为一种强大的数据结构,扮演着举足轻重的角色。而合并字典,则是我们经常遇到的操作。Python 为我们提供了多种合并字典的方式,每种方式都有其独特的应用场景。探索 Py...

现代化python字典合并的技巧

现代Python字典合并:使用|运算符在Python 3.9之前,有两种常见的合并字典的方法:使用update方法或**运算符。然而,这两种方法都有其缺点。在本文中,我们将探讨Python中合并字典的...

python将两个字典进行合并的方法

在 Python 中,可以使用 update() 方法将一个字典合并到另一个字典中,也可以使用运算符 | 或 ** 将两个字典合并为一个新的字典。以下是示例代码,演示了三种不同的方式来合并字典:# 定...

Python 字典(Dictionary):高效数据映射的强大工具

在 Python 中,字典是一种基于键值对(key-value pairs)的数据结构,能够高效地进行数据映射(data mapping)和快速查找(efficient lookup)。字典以无序(u...

一文掌握Python的字典

字典是 Python 中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级 Python 开发人...