In this post:

  • Python 3.6 how to merge several dictionaries
  • Python merge dictionaries (before 3.5)
  • Python 2 merge dictionaries
  • Python 2 merge dictionaries with itertools
  • Merge of dictionaries with repetition of keys

NOTE: Check this article: How to Merge Dictionaries in Python which contains updates for the latest ways to merge dicts in Python.

Python 3.6 how to merge several dictionaries

Since python 3.5 you can use this syntax to merge two or more dictionaries(it's the fastest one):

merge = {**one, **two, **three}

Example of merging 3 dictionaries:

dictOne = {1: 'Python', 2: 'Java', 3: 'Javascript', 0:'None'}
dictTwo = {4: 'C#', 5: 'C++', 6: 'Cobol', 7:'Ruby'}
dictThree = {8: 'HTML', 9: 'CSS'}

dictMerge = {**dictOne, **dictTwo, **dictThree}

for k, v in dictMerge.items():
    print(k,  v)

result:

0 None
1 Python
2 Java
3 Javascript
4 C#
5 C++
6 Cobol
7 Ruby
8 HTML
9 CSS

Python merge dictionaries (before 3.5)

For older version this code can simulate merging of dictionaries:

dictMerge = dictOne.copy()
dictMerge.update(dictTwo)
dictMerge.update(dictThree)

Example of merging 3 dictionaries:

dictOne = {1: 'Python', 2: 'Java', 3: 'Javascript', 0:'None'}
dictTwo = {4: 'C#', 5: 'C++', 6: 'Cobol', 7:'Ruby'}
dictThree = {8: 'HTML', 9: 'CSS'}

dictMerge = dictOne.copy()
dictMerge.update(dictTwo)
dictMerge.update(dictThree)

for k, v in dictMerge.items():
    print(k,  v)

result:

0 None
1 Python
2 Java
3 Javascript
4 C#
5 C++
6 Cobol
7 Ruby
8 HTML
9 CSS

Python 2 merge dictionaries

For Python 2 merging is done by:

dictMerge = dict(dictOne.items() + dictTwo.items() + dictThree.items())

Example of merging 3 dictionaries:

dictOne = {1: 'Python', 2: 'Java', 3: 'Javascript', 0:'None'}
dictTwo = {4: 'C#', 5: 'C++', 6: 'Cobol', 7:'Ruby'}
dictThree = {8: 'HTML', 9: 'CSS'}

dictMerge = dict(dictOne.items() + dictTwo.items() + dictThree.items())

for k, v in dictMerge.items():
    print(k,  v)

result:

0 None
1 Python
2 Java
3 Javascript
4 C#
5 C++
6 Cobol
7 Ruby
8 HTML
9 CSS

Python 2 merge dictionaries with itertools

Another way to merge dictionaries in python 2 is with itertools(it's faster than previous one):

dictMerge = dict(itertools.chain(dictOne.iteritems(), dictTwo.iteritems(), dictThree.iteritems()))

Example of merging 3 dictionaries:

import itertools

dictOne = {1: 'Python', 2: 'Java', 3: 'Javascript', 0:'None'}
dictTwo = {4: 'C#', 5: 'C++', 6: 'Cobol', 7:'Ruby'}
dictThree = {8: 'HTML', 9: 'CSS'}

dictMerge = dict(itertools.chain(dictOne.iteritems(), dictTwo.iteritems(), dictThree.iteritems()))

for k, v in dictMerge.items():
    print(k,  v)

result:

0 None
1 Python
2 Java
3 Javascript
4 C#
5 C++
6 Cobol
7 Ruby
8 HTML
9 CSS

Merge of dictionaries with repetition of keys

note that in case of repetition of keys only one will be present in the merge:

dictOne = {1: 'Python', 2: 'Java', 3: 'Javascript', 0:'None'}
dictTwo = {1: 'C#', 2: 'C++', 4: 'Cobol', 0:'Ruby'}
dictMerge = {**dictOne, **dictTwo}

result:

0 Ruby
1 C#
2 C++
3 Javascript