ChainMap in Python

Python contains a container called “ChainMap” which encapsulates many dictionaries into one unit. ChainMap is member of module “collections“.

Example:

# Python program to demonstrate the use of # ChainMap   
   
      
      
from collections import ChainMap  
      
      
d1 = {'a': 1, 'b': 2
d2 = {'c': 3, 'd': 4
d3 = {'e': 5, 'f': 6
   
# Defining the chainmap  
c = ChainMap(d1, d2, d3)  
      
print(c)


Output:

ChainMap({'a': 1, 'b': 2}, {'c': 3, 'd': 4}, {'e': 5, 'f': 6})

Let’s review various Operations enabled ChainMap

Access Operations

  1. keys() :-This function/method is have used to display all the keys of all the dictionaries in ChainMap.
  2. values() :- This function/method is have used to display values of all the dictionaries in ChainMap.
  3. maps() :- This function/method is have used to display keys with corresponding values  of all the dictionaries in ChainMap.



    # Please select Python 3 for running this code in IDE
    # Python code to demonstrate ChainMap and # keys(), values() and maps
     
    # importing collections for ChainMap operations
    import collections
     
    # initializing dictionaries
    dic1 = { 'a' : 1, 'b' : 2 }
    dic2 = { 'b' : 3, 'c' : 4 }
     
    # initializing ChainMap
    chain = collections.ChainMap(dic1, dic2)
     
    # printing chainMap using maps
    print ("All the ChainMap contents are : ")
    print (chain.maps)
     
    # printing keys using keys()
    print ("All keys of ChainMap are : ")
    print (list(chain.keys()))
     
    # printing keys using keys()
    print ("All values of ChainMap are : ")
    print (list(chain.values()))

    Output :

    1. All the ChainMap contents are : [{‘b’: 2, ‘a’: 1}, {‘c’: 4, ‘b’: 3}] All keys of ChainMap are : [‘a’, ‘c’, ‘b’] All values of ChainMap are : [1, 4, 2]
    2. Note : Notice the key named “b” exists in both dictionaries, but just first dictionary key is taken when key value of “b”. Ordering is done when the dictionaries are passed in function.

    Manipulating Operations

    •         new_child() :-This function/method adds a new dictionary in the beginning of the ChainMap.
    •        reversed() :- This function/method reverses the relative ordering of dictionaries in the ChainMap.

    # Please select Python 3 for running this code in IDE
    # Python code to demonstrate ChainMap and
    # reversed() and new_child()
     
    # importing collections for ChainMap operations
    import collections
     
    # initializing dictionaries
    dic1 = { 'a' : 1, 'b' : 2 }
    dic2 = { 'b' : 3, 'c' : 4 }
    dic3 = { 'f' : 5 }
     
    # initializing ChainMap
    chain = collections.ChainMap(dic1, dic2)
     
    # printing chainMap using map
    print ("All the ChainMap contents are : ")
    print (chain.maps)
     
    # using new_child() to add new dictionary
    chain1 = chain.new_child(dic3)
     
    # printing chainMap using map
    print ("Displaying new ChainMap : ")
    print (chain1.maps)
     
    # displaying value associated with b before reversing
    print ("Value associated with b before reversing is : ",end="")
    print (chain1['b'])
     
    # reversing the ChainMap
    chain1.maps = reversed(chain1.maps)
     
    # displaying value associated with b after reversing
    print ("Value associated with b after reversing is : ",end="")
    print (chain1['b'])

    Output :

    1. All the ChainMap contents are : [{‘b’: 2, ‘a’: 1}, {‘b’: 3, ‘c’: 4}]
    2. Displaying new ChainMap : [{‘f’: 5}, {‘b’: 2, ‘a’: 1}, {‘b’: 3, ‘c’: 4}]
    3. Value associated with b before reversing is : 2
    4. Value associated with b after reversing is : 3

    Explore More

    Python 10 Programs for Beginners

    Program 1:Write a program to create a 2D array using NumPy. Output: Program 2: Write a program to convert a python list to a NumPy array. Output: Program 3: Write a program to create matrix of 3×3 from 11 to 30. Output: Program 4: Write a program to create a data frame to store data of candidates who appeared in

    Find index of first occurrence when an unsorted array is sorted

    Find index of first occurrence when an unsorted an array is sorted Given an unsorted an array and a number x, find an index of first occurrence of x when

    Find sum non repeating distinct elements array

    Find sum of non-repeating (distinct) elements in an array Given an integer an array with repeated elements, the task is to find the sum of all distinct elements in the