Python Program for collections.UserDict() Function

Dictionary in Python:

A Python dictionary is a list of objects that are not in any particular order i.e Unordered.

A dictionary is made up of a collection of key-value pairs. Each key-value pair corresponds to a specific value.

Curly braces { } can be used to describe a dictionary by enclosing a comma-separated list of key-value pairs.

Every key is separated from its associated value by a colon “:”

collections.UserDict() Function:

Python has a dictionary-like container called UserDict, which is available in the collections module. This class serves as a container for dictionary objects. This class is useful when one wants to create their own dictionary, either with modified or new functionality. It can be thought of as a method of adding new behaviors to the dictionary. This class takes a dictionary instance as an argument and simulates the contents of a regular dictionary. This class’s data attribute provides access to the dictionary.

Syntax:

collections.UserDict([initial data])

Python Program for collections.UserDict() Function

Method #1: Using collections Module (Static Input)

Approach:

  • Import UserDict() function from the collections module using the import keyword.
  • Give the dictionary as static input and store it in a variable.
  • Pass the given dictionary as an argument to the UserDict() function to create a user dictionary for the given dictionary.
  • Store it in another variable.
  • Print the above result.
  • Create an empty user dictionary using the UserDict() function and store it in another variable.
  • Print the above obtained empty user dictionary.
  • The Exit of the Program.

Below is the implementation:

# Import UserDict() function from the collections module using the import keyword.
from collections import UserDict
# Give the dictionary as static input and store it in a variable.
gvn_dict = {'p': 180, 'q': 190, 'r': 200}
# Pass the given dictionary as an argument to the UserDict() function to
# create a user dictionary for the given dictionary.
# Store it in another variable.
rsltuesr_dicnry = UserDict(gvn_dict)
# Print the above result.
print("The user dictionary for the given dictionary is :")
print(rsltuesr_dicnry.data)
# Create an empty user dictionary using the UserDict() function and store
# it in another variable.
emty_userdictry = UserDict()
# Print the above obtained empty user dictionary.
print("The Empty user dictionary is :")
print(emty_userdictry.data)

Output:

The user dictionary for the given dictionary is :
{'p': 180, 'q': 190, 'r': 200}
The Empty user dictionary is :
{}

Example2:

Approach:

  • Import UserDict() function from the collections module using the import keyword.
  • Create a class by passing the UserDict function as an argument.
  • Inside the class, create a function for stopping the deletion of items from a given dictionary.
  • Inside the function raise some random RuntimeError.
  • Create another function by passing the parameter as none for stopping the poping of items from a given dictionary.
  • Inside the function raise some random RuntimeError.
  • Create another function by passing the parameter as none for stopping the popitem from a given dictionary.
  • Inside the function raise some random RuntimeError.
  • Inside the main function,
  • Give the dictionary as static input and store it in a variable.
  • Create an object for the above class by passing the given dictionary as an argument and store it in another variable.
  • Print the given dictionary.
  • Delete an item from the dictionary using the pop() function.
  • The Exit of the Program.

Below is the implementation:

# Import UserDict() function from the collections module using the import keyword.
from collections import UserDict
  
 
# Create a class by passing the UserDict function as an argument.
class GivenDictionary(UserDict):
     
    # Inside the class, create a function for stopping
    # the deletion of items from a given dictionary.
    def delete(self):
        # Inside the function raise some random RuntimeError.
        raise RuntimeError("You Cannot delete an element from the given dictionary")
         
    # Create another function by passing the parameter as none for stopping the
    # poping of items from a given dictionary.
    def pop(self, a = None):
        # Inside the function raise some random RuntimeError.
        raise RuntimeError("You Cannot delete an element from the given dictionary")
         
    # Create another function by passing the parameter as none for stopping the
    # popitem from a given dictionary.
    def popitem(self, a = None):
        # Inside the function raise some random RuntimeError.
        raise RuntimeError("You Cannot delete an element from the given dictionary")
     
# Inside the main function
# Give the dictionary as static input and store it in a variable.
gvn_dict = {'p':4,'q':9 ,'z': 13}
# Create an object for the above class by passing the given dictionary as an argument 
# and store it in another variable.
rslt_dictry = GivenDictionary(gvn_dict)
# Print the given dictionary. 
print("The given dictionary = ")
print(rslt_dictry)
# Delete an item from the dictionary using the pop() function.
rslt_dictry.pop(1)

Output:

The given dictionary = 
{'p': 4, 'q': 9, 'z': 13}
Traceback (most recent call last):
File "jdoodle.py", line 36, in <module>
rslt_dictry.pop(1)
File "jdoodle.py", line 18, in pop
raise RuntimeError("You Cannot delete an element from the given dictionary")
RuntimeError: You Cannot delete an element from the given dictionary

Method #2: Using collections Module (User Input)

Approach:

  • Import UserDict() function from the collections module using the import keyword.
  • Take a dictionary and initialize it with an empty dictionary using dict() or {}.
  • Give the number of keys as user input using int(input()) and store it in a variable.
  • Loop till the given number of keys using for loop.
  • Inside the for loop scan the key and value as user input using input(), split() functions, and store them in two separate variables.
  • Initialize the key with the value of the dictionary.
  • Pass the given dictionary as an argument to the UserDict() function to create a user dictionary for the given dictionary.
  • Store it in another variable.
  • Print the above result.
  • Create an empty user dictionary using the UserDict() function and store it in another variable.
  • Print the above obtained empty user dictionary.
  • The Exit of the Program.

Below is the implementation:

# Import UserDict() function from the collections module using the import keyword.
from collections import UserDict
# Take a dictionary and initialize it with an empty dictionary using dict() or {}.
gvn_dict = dict()
# Give the number of keys as user input using int(input()) and store it in a variable.
numb_of_kys = int(
    input('Enter some random number of keys of the dictionary = '))
# Loop till the given number of keys using for loop.
for p in range(numb_of_kys):
        # Inside the for loop scan the key and value as
    # user input using input(),split() functions
    # and store them in two separate variables.
    keyy, valuee =  input(
        'Enter key and value separated by spaces = ').split()
    # Initialize the key with the value of the dictionary.
    gvn_dict[keyy] = valuee

# Pass the given dictionary as an argument to the UserDict() function to
# create a user dictionary for the given dictionary.
# Store it in another variable.
rsltuesr_dicnry = UserDict(gvn_dict)
# Print the above result.
print("The user dictionary for the given dictionary is :")
print(rsltuesr_dicnry.data)
# Create an empty user dictionary using the UserDict() function and store
# it in another variable.
emty_userdictry = UserDict()
# Print the above obtained empty user dictionary.
print("The Empty user dictionary is :")
print(emty_userdictry.data)

Output:

Enter some random number of keys of the dictionary = 3
Enter key and value separated by spaces = x welcome
Enter key and value separated by spaces = y to
Enter key and value separated by spaces = z Python-Programs
The user dictionary for the given dictionary is :
{'x': 'welcome', 'y': 'to', 'z': 'Python-Programs'}
The Empty user dictionary is :
{}

Example2:

Approach:

  • Import UserDict() function from the collections module using the import keyword.
  • Create a class by passing the UserDict function as an argument.
  • Inside the class, create a function for stopping the deletion of items from a given dictionary.
  • Inside the function raise some random RuntimeError.
  • Create another function by passing the parameter as none for stopping the poping of items from a given dictionary.
  • Inside the function raise some random RuntimeError.
  • Create another function by passing the parameter as none for stopping the popitem from a given dictionary.
  • Inside the function raise some random RuntimeError.
  • Inside the main function,
  • Take a dictionary and initialize it with an empty dictionary using dict() or {}.
  • Give the number of keys as user input using int(input()) and store it in a variable.
  • Loop till the given number of keys using for loop.
  • Inside the for loop scan the key and value as user input using input(), split() functions, and store them in two separate variables.
  • Initialize the key with the value of the dictionary.
  • Create an object for the above class by passing the given dictionary as an argument and store it in another variable.
  • Print the given dictionary.
  • Delete an item from the dictionary using the pop() function.
  • The Exit of the Program.

Below is the implementation:

# Import UserDict() function from the collections module using the import keyword.
from collections import UserDict
  
 
# Create a class by passing the UserDict function as an argument.
class GivenDictionary(UserDict):
     
    # Inside the class, create a function for stopping
    # the deletion of items from a given dictionary.
    def delete(self):
        # Inside the function raise some random RuntimeError.
        raise RuntimeError("You Cannot delete an element from the given dictionary")
         
    # Create another function by passing the parameter as none for stopping the
    # poping of items from a given dictionary.
    def pop(self, a = None):
        # Inside the function raise some random RuntimeError.
        raise RuntimeError("You Cannot delete an element from the given dictionary")
         
    # Create another function by passing the parameter as none for stopping the
    # popitem from a given dictionary.
    def popitem(self, a = None):
        # Inside the function raise some random RuntimeError.
        raise RuntimeError("You Cannot delete an element from the given dictionary")
     
# Inside the main function
# Take a dictionary and initialize it with an empty dictionary using dict() or {}.
gvn_dict = dict()
# Give the number of keys as user input using int(input()) and store it in a variable.
numb_of_kys = int(
    input('Enter some random number of keys of the dictionary = '))
# Loop till the given number of keys using for loop.
for p in range(numb_of_kys):
        # Inside the for loop scan the key and value as
    # user input using input(),split() functions
    # and store them in two separate variables.
    keyy, valuee =  input(
        'Enter key and value separated by spaces = ').split()
    # Initialize the key with the value of the dictionary.
    gvn_dict[keyy] = valuee
    
# Create an object for the above class by passing the given dictionary as an argument 
# and store it in another variable.
rslt_dictry = GivenDictionary(gvn_dict)
# Print the given dictionary. 
print("The given dictionary = ")
print(rslt_dictry)
# Delete an item from the dictionary using the pop() function.
rslt_dictry.pop(1)

Output:

Enter some random number of keys of the dictionary = 2
Enter key and value separated by spaces = welcometo 12
Enter key and value separated by spaces = Python-Programs 13
The given dictionary = 
{'welcometo': '12', 'Python-Programs': '13'}
Traceback (most recent call last):
File "jdoodle.py", line 49, in <module>
rslt_dictry.pop(1)
File "jdoodle.py", line 18, in pop
raise RuntimeError("You Cannot delete an element from the given dictionary")
RuntimeError: You Cannot delete an element from the given dictionary