Python – Multiplication across Like Keys Value list elements
Given two dictionaries with value lists, perform element wise like keys multiplication.
Input : test_dict1 = {“Gfg” : [4, 6], “Best” : [8, 6], “is” : [9, 3]}, test_dict2 = {“Gfg”: [8, 4], “Best” : [6, 3], “is” : [9, 8]} Output : {‘Gfg’: [32, 24], ‘Best’: [48, 18], ‘is’: [81, 24]} Explanation : 4 * 8 = 32, 6 * 4 = 24 and so on, hence new list value. Input : test_dict1 = {“Gfg” : [4, 6], “Best” : [8, 6]}, test_dict2 = {“Gfg”: [8, 4], “Best” : [6, 3]} Output : {‘Gfg’: [32, 24], ‘Best’: [48, 18]} Explanation : 4 * 8 = 32, 6 * 4 = 24 and so on, hence new list value.
Method : Using dictionary comprehension + zip()
This is one of the ways in which this task can be performed. In this, we perform the task of combining keys using zip() and use zip() again for combining like values. The dictionary comprehension is used to perform construction of new list.
Python3
# Python3 code to demonstrate working of # Multiplication across Like Keys Value list elements # Using dictionary comprehension + zip() # initializing dictionaries test_dict1 = { "Gfg" : [ 4 , 6 , 7 ], "Best" : [ 8 , 6 , 4 ], "is" : [ 9 , 3 , 4 ]} test_dict2 = { "Gfg" : [ 8 , 4 , 3 ], "Best" : [ 6 , 3 , 1 ], "is" : [ 9 , 8 , 2 ]} # printing original lists print ( "The original dictionary 1 is : " + str (test_dict1)) print ( "The original dictionary 2 is : " + str (test_dict2)) # Using zip() to perform link keys and values res = {key: [ele1 * ele2 for (ele1, ele2) in zip (test_dict1[key], val2)] for (key, val2) in zip (test_dict1.keys(), test_dict2.values())} # printing result print ( "The constructed dictionary : " + str (res)) |
The original dictionary 1 is : {'Gfg': [4, 6, 7], 'Best': [8, 6, 4], 'is': [9, 3, 4]} The original dictionary 2 is : {'Gfg': [8, 4, 3], 'Best': [6, 3, 1], 'is': [9, 8, 2]} The constructed dictionary : {'Gfg': [32, 24, 21], 'Best': [48, 18, 4], 'is': [81, 24, 8]}
Time Complexity: O(n), where n is the elements of dictionary
Auxiliary Space: O(n), where n is the size of dictionary
Method 2: Use a for loop to iterate through the keys and values of the dictionaries:
Python
# Python3 code to demonstrate working of # Multiplication across Like Keys Value list elements # Using for loop # initializing dictionaries test_dict1 = { "Gfg" : [ 4 , 6 , 7 ], "Best" : [ 8 , 6 , 4 ], "is" : [ 9 , 3 , 4 ]} test_dict2 = { "Gfg" : [ 8 , 4 , 3 ], "Best" : [ 6 , 3 , 1 ], "is" : [ 9 , 8 , 2 ]} # printing original dictionaries print ( "The original dictionary 1 is : " + str (test_dict1)) print ( "The original dictionary 2 is : " + str (test_dict2)) # Multiplying the values of the like keys res = {} for key in test_dict1: if key in test_dict2: res[key] = [test_dict1[key][i] * test_dict2[key][i] for i in range ( len (test_dict1[key]))] # printing result print ( "The constructed dictionary : " + str (res)) |
The original dictionary 1 is : {'is': [9, 3, 4], 'Gfg': [4, 6, 7], 'Best': [8, 6, 4]} The original dictionary 2 is : {'is': [9, 8, 2], 'Gfg': [8, 4, 3], 'Best': [6, 3, 1]} The constructed dictionary : {'is': [81, 24, 8], 'Gfg': [32, 24, 21], 'Best': [48, 18, 4]}
Time complexity: O(nm), where n is the number of keys in the dictionaries and m is the length of the value lists.
Auxiliary space: O(nm) to store the result dictionary.
Please Login to comment...