Open In App

Python | K modulo on each Dictionary Key

Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with dictionaries, we might come across a problem in which we require to perform a particular operation on each value of keys like K modulo on each key. This type of problem can occur in web development domain. Let’s discuss certain ways in which this task can be performed. 

Method #1 : Using loop This is the naive method in which this task can be performed. In this we simply run a loop to traverse each key in dictionary and perform the desired operation of K modulo. 

Python3




# Python3 code to demonstrate working of
# K modulo on each Dictionary Key
# Using loop
 
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'best' : 7}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing K
K = 4
 
# Using loop
# K modulo on each Dictionary Key
for key in test_dict:
    test_dict[key] %= 4
 
# printing result
print("The dictionary after mod K each key's value : " + str(test_dict))


Output : 

The original dictionary : {'is': 4, 'best': 7, 'gfg': 6}
The dictionary after mod K each key's value : {'is': 0, 'best': 3, 'gfg': 2}

Time Complexity: O(n), where n is the length of the list test_dict
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res list

  Method #2 : Using update() + dictionary comprehension An alternate one-liner to perform this task, the combination of above functions can be used to perform this particular task. The update function is used to perform the % K over the dictionary. 

Python3




# Python3 code to demonstrate working of
# K modulo on each Dictionary Key
# Using update() + dictionary comprehension
 
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'best' : 7}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing K
K = 4
 
# Using update() + dictionary comprehension
# K modulo on each Dictionary Key
test_dict.update((x, y % K) for x, y in test_dict.items())
 
# printing result
print("The dictionary after mod K each key's value : " + str(test_dict))


Output : 

The original dictionary : {'is': 4, 'best': 7, 'gfg': 6}
The dictionary after mod K each key's value : {'is': 0, 'best': 3, 'gfg': 2}

Method #3 : Using dictionary comprehension
 

Python3




# Method #3 : Using dictionary comprehension
 
# Python3 code to demonstrate working of
# K modulo on each Dictionary Key
# Using dictionary comprehension
   
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'best' : 7}
   
# printing original dictionary
print("The original dictionary : " + str(test_dict))
   
# initializing K
K = 4
   
# Using map() + dictionary comprehension
# K modulo on each Dictionary Key
test_dict = {key: value % K for key, value in test_dict.items()}
   
# printing result
print("The dictionary after mod K each key's value : " + str(test_dict))


Output

The original dictionary : {'gfg': 6, 'is': 4, 'best': 7}
The dictionary after mod K each key's value : {'gfg': 2, 'is': 0, 'best': 3}

# Time complexity : O(n), n is the number of keys in the dictionary.
# Space complexity : O(n), n is the number of keys in the dictionary.

Method #4 : Using operator.mod(),keys() methods

Approach

  1. Initiate a dictionary to traverse the list of dictionary keys
  2. Create a new dictionary with key of test_dict and value modulo K  as value
  3. Display new dictionary

Python3




# Python3 code to demonstrate working of
# K modulo on each Dictionary Key
# Using loop
 
# Initialize dictionary
test_dict = {'gfg' : 6, 'is' : 4, 'best' : 7}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# initializing K
K = 4
import operator
res=dict()
for i in list(test_dict.keys()):
    res[i]=operator.mod(test_dict[i],K)
     
# printing result
print("The dictionary after mod K each key's value : " + str(res))


Output

The original dictionary : {'gfg': 6, 'is': 4, 'best': 7}
The dictionary after mod K each key's value : {'gfg': 2, 'is': 0, 'best': 3}

Time Complexity : O(N) N – length of dictionary keys list

Auxiliary Space : O(N) length of new dictionary



Last Updated : 27 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads