Open In App

Collections.UserDict in Python

Improve
Improve
Like Article
Like
Save
Share
Report

An unordered collection of data values that are used to store data values like a map is known as Dictionary in Python. Unlike other Data Types that hold only a single value as an element, Dictionary holds key:value pair. Key-value is provided in the dictionary to make it more optimized.

Note: For more information, refer to Python Dictionary

Collections.UserDict

Python supports a dictionary like a container called UserDict present in the collections module. This class acts as a wrapper class around the dictionary objects. This class is useful when one wants to create a dictionary of their own with some modified functionality or with some new functionality. It can be considered as a way of adding new behaviors to the dictionary. This class takes a dictionary instance as an argument and simulates a dictionary that is kept in a regular dictionary. The dictionary is accessible by the data attribute of this class.

Syntax: 

collections.UserDict([initialdata])

Example 1:

Python3




# Python program to demonstrate
# userdict
 
 
from collections import UserDict
 
 
d = {'a':1,
    'b': 2,
    'c': 3}
 
# Creating an UserDict
userD = UserDict(d)
print(userD.data)
 
 
# Creating an empty UserDict
userD = UserDict()
print(userD.data)


Output:

{'a': 1, 'b': 2, 'c': 3}
{}

Example 2: Let’s create a class inheriting from UserDict to implement a customized dictionary.

Python3




# Python program to demonstrate
# userdict
  
 
from collections import UserDict
  
 
# Creating a Dictionary where
# deletion is not allowed
class MyDict(UserDict):
     
    # Function to stop deletion
    # from dictionary
    def __del__(self):
        raise RuntimeError("Deletion not allowed")
         
    # Function to stop pop from
    # dictionary
    def pop(self, s = None):
        raise RuntimeError("Deletion not allowed")
         
    # Function to stop popitem
    # from Dictionary
    def popitem(self, s = None):
        raise RuntimeError("Deletion not allowed")
     
# Driver's code
d = MyDict({'a':1,
    'b': 2,
    'c': 3})
 
print("Original Dictionary")
print(d)
 
d.pop(1)


Output:

Original Dictionary
{'a': 1, 'c': 3, 'b': 2}
Traceback (most recent call last):
  File "/home/3ce2f334f5d25a3e24d10d567c705ce6.py", line 35, in 
    d.pop(1)
  File "/home/3ce2f334f5d25a3e24d10d567c705ce6.py", line 20, in pop
    raise RuntimeError("Deletion not allowed")
RuntimeError: Deletion not allowed
Exception ignored in: 
Traceback (most recent call last):
  File "/home/3ce2f334f5d25a3e24d10d567c705ce6.py", line 15, in __del__
RuntimeError: Deletion not allowed

 



Last Updated : 01 Oct, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads