In this article, we will discuss how to add the contents of a dictionary to another dictionary in Python. Then we will also see how to add the contents of two dictionaries to a new dictionary.
Add a dictionary to another dictionary.
Suppose we have two dictionaries i.e.
dict_1 = { "Hello": 56, "at": 23, "test": 43, "the": 12 } dict_2 = { 'where': 4, 'who': 5, 'why': 6, 'this': 20 }
These two dictionaries have different keys. We want to add the contents of dict_2 to dict_1. After that, the contents of dict_2 should be like this,
{'Hello': 56, 'at': 23, 'test': 43, 'the': 12, 'where': 4, 'who': 5, 'why': 6, 'this': 20}
For this, we will use the update() function of the dictionary. It accepts an iterable sequence of key-value pairs as an argument and inserts all those key-value pairs to the calling dictionary object. If both dictionaries have few similar keys, their values in dict_1 will be overwritten by values from dict_2.
Now let’s see an example, where we will add the contents of dict_2 to dict_1 i.e.
dict_1 = { "Hello": 56, "at": 23, "test": 43, "the": 12 } dict_2 = { 'where': 4, 'who': 5, 'why': 6, 'this': 20 } # Adding elements from dict2 to dict1 dict_1.update( dict_2 ) print(dict_1)
Output:
{'Hello': 56, 'at': 23, 'test': 43, 'the': 12, 'where': 4, 'who': 5, 'why': 6, 'this': 20}
We called the update() function on dictionary dict_1 and pass dict_2 as argument. It added all the key-value pairs in dict_2 to dict_1.
Frequently Asked:
- Add value to Dictionary if Key already exists in Python
- Append to a Python dictionary using a for loop
- Add to a value in a Dictionary in Python
- How to Add new keys to a Dictionary in Python?
In this example, keys in both of the dictionaries were unique. Therefore no value got overwritten. What if both the dictionaries had a few common keys?
Add a dictionary to another dictionary with same keys
If both the dictionaries have some similar keys, then the values of those keys will be overwritten. When we call the dict_1.update(dict_2), then preference is given to dict_2. It means for common keys, the values from dict_2 will be used, and values of dict_1 will be overwritten,
Let’s see an example.
dict_1 = { "Hello": 56, "who": 23, "test": 43, "the": 12 } dict_2 = { 'where': 4, 'who': 5, 'why': 6, 'this': 20 } # Adding elements from dict2 to dict1 dict_1.update( dict_2 ) print(dict_1)
Output
{'Hello': 56, 'who': 5, 'test': 43, 'the': 12, 'where': 4, 'why': 6, 'this': 20}
Both the keys had the following common keys i.e. “who” and “this”. Therefore the value of these keys in dict_1 got overwritten by the values in dict_2. Other unique keys from dict_2 got added directly in dict_1.
What if you don’t want the values to be overwritten while adding a dictionary to another dictionary. For that, checkout the next article -> Python | Add dictionary to dictionary without overwriting
Add a dictionary to another dictionary using loop
We can iterate over all key-value pairs of a dictionary one by one and insert them into another dictionary using the [] operator. For example,
dict_1 = { "Hello": 56, "at": 23, "test": 43, "this": 12 } dict_2 = { 'where': 4, 'who': 5, 'why': 6, 'this': 20 } # Add items from dict_2 to dict_1 for key, value in dict_2.items(): dict_1[key] = value print(dict_1)
Output:
{'Hello': 56, 'at': 23, 'test': 43, 'this': 20, 'where': 4, 'who': 5, 'why': 6}
It added all the key-value pairs of dict_2 to dict_1. If both the dictionaries have some common keys, then the values of those keys in dict_1 will be overwritten by values in dict_2.
Suppose you want a solution where values are not overwritten but merged while adding a dictionary to another dictionary. For that, checkout the next article for that -> Python | Add dictionary to dictionary without overwriting
Add contents of two dictionaries to a new dictionary.
Instead of updating the contents of a dictionary, we can also create a new dictionary containing both dictionaries.
- Create a new empty dictionary i.e new_dict
- Add the contents of dict_1 to new dictionary by calling the update() function i.e. new_dict.update(dict_1)
- Add the contents of dict_2 by new dictionary calling the update() function i.e. new_dict.update(dict_2)
For example,
dict_1 = { "Hello": 56, "at": 23, "test": 43, "this": 12 } dict_2 = { 'where': 4, 'who': 5, 'why': 6, 'this': 20 } new_dict = {} new_dict.update(dict_1) new_dict.update(dict_2) print(new_dict)
Output:
{'Hello': 56, 'at': 23, 'test': 43, 'this': 20, 'where': 4, 'who': 5, 'why': 6}
It added all the key-value pairs of dict_2 and dict_1 to a new dictionary. If both the dictionaries (dict_1 and dict_2) have some common keys, then those keys from dict_1 will be overwritten by values in dict_2.
If you want a solution where values should not be overwritten for common keys.
Summary:
We learned how to add a dictionary to another dictionary in Python.