Skip to content
Related Articles

Related Articles

Improve Article

Merging and Updating Dictionary Operators in Python 3.9

  • Difficulty Level : Hard
  • Last Updated : 10 May, 2020

Python 3.9 is still in development and scheduled to be released in October this year. On Feb 26, alpha 4 versions have been released by the development team. One of the latest features in Python 3.9 is the merge and update operators.

There are various ways in which Dictionaries can be merged by the use of various functions and constructors in Python. In this article, we will look upon all the old ways of doing these operations as well as about the latest operator released by the Python development team, which will surely be relevant for all the Python programmers.

  • Using method update():

    Update() method is used to merge the second dictionary into the first dictionary without creating any new dictionary and updating the value of the first dictionary, whereas, the value of the second dictionary remains unaltered. Also, the function doesn’t return any value.


    # 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 :"
    # 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}

  • Using ** in Python

    There is a trick in Python where we can merge two dictionaries using single expression and store it in a third dictionary. The expression is **. This does not affect the other two dictionaries. ** allows us to pass multiple arguments to a function directly using a dictionary by expanding the contents of the dictionary in the form of collection of key value pairs. For more information refer **kwargs in Python. In this method, we passes all the elements of the all the dictionaries into a new dictionary in a sequential manner. As the dictionaries contents are passed on after another all the values for duplicates keys are overwritten.


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

  • Using | and |= operators

    Dictionary union (|) will return a new dictionary consisting of the left operand merged with the right operand, each of which must be a dictionary. If a key appears in both operands, the last-seen value (i.e. that from the right-hand operand) is selected. Update (|=) operation returns the left operand merged with the right operand.


    # 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) : ")
    dict4 = dict2 | dict1
    print("\nMerging dict1 to dict2 (i.e., dict2|dict1) : ")
    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}

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course

My Personal Notes arrow_drop_up
Recommended Articles
Page :