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 dictionarytest_dict = {'gfg' : 6, 'is' : 4, 'best' : 7}# printing original dictionaryprint("The original dictionary : " + str(test_dict))# initializing K K = 4# Using loop# K modulo on each Dictionary Keyfor key in test_dict: test_dict[key] %= 4# printing result print("The dictionary after mod K each key's value : " + str(test_dict)) |
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 dictionarytest_dict = {'gfg' : 6, 'is' : 4, 'best' : 7}# printing original dictionaryprint("The original dictionary : " + str(test_dict))# initializing K K = 4# Using update() + dictionary comprehension# K modulo on each Dictionary Keytest_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)) |
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 dictionarytest_dict = {'gfg' : 6, 'is' : 4, 'best' : 7} # printing original dictionaryprint("The original dictionary : " + str(test_dict)) # initializing K K = 4 # Using map() + dictionary comprehension# K modulo on each Dictionary Keytest_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)) |
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
- Initiate a dictionary to traverse the list of dictionary keys
- Create a new dictionary with key of test_dict and value modulo K as value
- Display new dictionary
Python3
# Python3 code to demonstrate working of# K modulo on each Dictionary Key# Using loop# Initialize dictionarytest_dict = {'gfg' : 6, 'is' : 4, 'best' : 7}# printing original dictionaryprint("The original dictionary : " + str(test_dict))# initializing KK = 4import operatorres=dict()for i in list(test_dict.keys()): res[i]=operator.mod(test_dict[i],K) # printing resultprint("The dictionary after mod K each key's value : " + str(res)) |
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
