📜  Python|合并两个字典

📅  最后修改于: 2022-05-13 01:54:27.333000             🧑  作者: Mango

Python|合并两个字典

有多种方法可以通过使用Python中的各种函数和构造函数来合并字典。在本文中,我们将讨论几种合并字典的方法。

使用方法 update()

通过使用Python中的 update() 方法,可以将一个列表合并到另一个列表中。但是在这种情况下,第二个列表被合并到第一个列表中,并且没有创建新列表。它返回None

例子:

Python3
# Python code to merge dict using update() method
def Merge(dict1, dict2):
    return(dict2.update(dict1))
     
# Driver code
dict1 = {'a': 10, 'b': 8}
dict2 = {'d': 6, 'c': 4}
 
# This return None
print(Merge(dict1, dict2))
 
# changes made in dict2
print(dict2)


Python3
# Python code to merge dict using a single
# expression
def Merge(dict1, dict2):
    res = {**dict1, **dict2}
    return res
     
# Driver code
dict1 = {'a': 10, 'b': 8}
dict2 = {'d': 6, 'c': 4}
dict3 = Merge(dict1, dict2)
print(dict3)


Python3
# code
# Python code to merge dict using a single 
# expression
def Merge(dict1, dict2):
    res = dict1 | dict2
    return res
       
# Driver code
dict1 = {'x': 10, 'y': 8}
dict2 = {'a': 6, 'b': 4}
dict3 = Merge(dict1, dict2)
print(dict3)
 
# This code is contributed by virentanti16


输出:

None
{'c': 4, 'a': 10, 'b': 8, 'd': 6}

在 Python 中使用**

这通常被认为是Python中的一个技巧,其中一个表达式用于合并两个字典并存储在第三个字典中。单个表达式是**。这不会影响其他两个字典。 ** 表示参数是字典。使用 ** [双星] 是一种快捷方式,允许您直接使用字典将多个参数传递给函数。有关更多信息,请参阅Python中的 **kwargs。使用它,我们首先将第一个字典的所有元素传递到第三个字典,然后将第二个字典传递到第三个字典。这将替换第一个字典的重复键。

例子:

Python3

# Python code to merge dict using a single
# expression
def Merge(dict1, dict2):
    res = {**dict1, **dict2}
    return res
     
# Driver code
dict1 = {'a': 10, 'b': 8}
dict2 = {'d': 6, 'c': 4}
dict3 = Merge(dict1, dict2)
print(dict3)

输出:

{'b': 8, 'a': 10, 'c': 4, 'd': 6}

使用 |在Python 3.9 中

在Python的最新更新中,我们现在可以使用“|”运算符符合并两个字典。合并字典是一种非常方便的方法。

例子:

Python3

# code
# Python code to merge dict using a single 
# expression
def Merge(dict1, dict2):
    res = dict1 | dict2
    return res
       
# Driver code
dict1 = {'x': 10, 'y': 8}
dict2 = {'a': 6, 'b': 4}
dict3 = Merge(dict1, dict2)
print(dict3)
 
# This code is contributed by virentanti16

输出:

{'x': 10, 'a': 6,  'b': 4, 'y': 8}