在Python 3.9 中合并和更新字典运算符
Python 3.9 仍在开发中,计划于今年 10 月发布。 2 月 26 日,开发团队发布了 alpha 4 版本。 Python 3.9 的最新特性之一是合并和更新运算符。
有多种方法可以通过使用Python中的各种函数和构造函数来合并字典。在本文中,我们将介绍所有这些操作的旧方法以及Python开发团队发布的最新运算符,这肯定会与所有Python程序员相关。
- 使用方法更新():
Update() 方法用于将第二个字典合并到第一个字典中,而不创建任何新字典并更新第一个字典的值,而第二个字典的值保持不变。此外,该函数不返回任何值。
例子:
# Python code to merge dict # using update() method dict1 = {'a': 10, 'b': 5, 'c': 3} dict2 = {'d': 6, 'c': 4, 'b': 8} # This return None print("value returned by update function :", dict1.update(dict2)) # changes made in dict1 print("dict1 :", dict1) print("dict2 :", dict2)
输出:value returned by update function : None dict1 : {'a': 10, 'b': 8, 'c': 4, 'd': 6} dict2 : {'d': 6, 'c': 4, 'b': 8}
- 在Python中使用 **
Python中有一个技巧,我们可以使用单个表达式合并两个字典并将其存储在第三个字典中。表达式是**。这不会影响其他两个字典。 ** 允许我们通过以键值对集合的形式扩展字典的内容,直接使用字典将多个参数传递给函数。有关更多信息,请参阅Python中的 **kwargs。在这种方法中,我们将所有字典的所有元素按顺序传递到一个新字典中。由于字典内容一个接一个地传递,所有重复键的值都被覆盖。
例子:
# Python code to merge dict # using a single expression dict1 = {'a': 10, 'b': 5, 'c': 3} dict2 = {'d': 6, 'c': 4, 'b': 8} dict3 = {**dict1,**dict2} print("dict1 :", dict1) print("dict2 :", dict2) print("dict3 :", dict3)
输出:dict1 : {'a': 10, 'b': 5, 'c': 3} dict2 : {'d': 6, 'c': 4, 'b': 8} dict3 : {'a': 10, 'b': 8, 'c': 4, 'd': 6}
- 使用 |和 |=运算符
字典联合
(|)
将返回一个由左操作数与右操作数合并组成的新字典,每个字典都必须是一个字典。如果一个键出现在两个操作数中,则选择最后看到的值(即来自右侧操作数的值)。更新(|=)
操作返回与右操作数合并的左操作数。例子:
# Python code to merge dict using # (|) and (|=) operators dict1 = {'a': 10, 'b': 5, 'c': 3} dict2 = {'d': 6, 'c': 4, 'b': 8} dict3 = dict1 | dict2 print("Merging dict2 to dict1 (i.e., dict1|dict2) : ") print(dict3) dict4 = dict2 | dict1 print("\nMerging dict1 to dict2 (i.e., dict2|dict1) : ") print(dict4) dict1 |= dict2 print("\nMerging dict2 to dict1 and Updating dict1 : ") print("dict1 : " + dict1) print("dict2 : " + dict2)
输出:Merging dict2 to dict1 (i.e. dict1|dict2) : {'a': 10, 'd': 6, 'c': 4, 'b': 8} Merging dict1 to dict2 (i.e. dict2|dict1) : {'d': 6, 'a': 10, 'b': 5, 'c': 3} Merging dict2 to dict1 and Updating dict1 : dict1 : {'a': 10, 'd': 6, 'c': 4, 'b': 8} dict2 : {'d': 6, 'c': 4, 'b': 8}