📜  在Python 3.9 中合并和更新字典运算符

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

在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}