## DEV Community

Rahul Banerjee

Posted on • Originally published at realpythonproject.com

# #Day27 - Fastest Way to Combine Dictionaries

We know the fastest way to combine lists. Today we will try to find the fastest way to combine dictionaries

We will be considering the following ways

• Using a for loop
• Using the update() method
• Using the ChainMap Function
• Using the unpacking operator
• Using the pipe operator ( | )
• Using the (|=) operator

### How are we going to measure the performance?

We have a couple of dictionaries with 1000 key-value pairs in each dictionary. We will update function func to perform the different combination methods. The function will be called 100 times and we will print the average run time.

### Using a for loop

We simply iterate over the second dictionary and add its elements to the first dictionary.
Below is the output

``````On average, it took 6.765522999558016e-05 seconds
``````

### Using the update method

Similar to the for loop approach, the first dictionary is updated. The elements of the second dictionary are added to the first dictionary. If there is a common key present, the value for the key in the first dictionary will be overwritten by that of the second dictionary.

``````On average, it took 2.554959000008239e-05 seconds
``````

### Using the ChainMap Function

Unlike the previous two approaches, a new dictionary is created and the original dictionaries are not updated. Below is the output

``````On average, it took 9.942399992723949e-07 seconds
``````

### Using the unpacking operator

In this approach as well, we create a new dictionary. The original dictionaries are not updated.
Below is the output

``````On average, it took 7.01560299967241e-05 seconds
``````

### Using the | operator

In Python 3.9, the pipe operator was introduced to combine dictionaries. Below is the output

``````On average, it took 5.5255000000000026e-05 seconds
``````

### Using the |= operator

Along with the | operator, the |= operator was introduced in Python 3.9. Below is the output

``````On average, it took 3.0259589999999983e-05 seconds
``````

### Comparison

The ChainMap() method seems to be the fastest