Python – Index match element Product
Sometimes, while working with Python list we can have a problem in which we have to compare two lists for index similarity and hence can have a task of multiplication equal index pairs. Let’s discuss certain way in which this task can be performed.
Method #1 : Using loop + zip()
This task can be performed by passing the zip(), which performs task of mapping both list with each other, to the function which computes the product according to equal indices.
Python3
# Python3 code to demonstrate working of # Index match element Product # using loop + zip() def prod(val) : res = 1 for ele in list (val): res * = ele return res # initialize lists test_list1 = [ 5 , 6 , 10 , 4 , 7 , 1 , 19 ] test_list2 = [ 6 , 6 , 10 , 3 , 7 , 10 , 19 ] # printing original lists print ( "The original list 1 is : " + str (test_list1)) print ( "The original list 2 is : " + str (test_list2)) # Index match element Product # using loop + zip() res = prod(x for x, y in zip (test_list1, test_list2) if x = = y) # printing result print ( "Multiplication of Identical elements : " + str (res)) |
Output :
The original list 1 is : [5, 6, 10, 4, 7, 1, 19] The original list 2 is : [6, 6, 10, 3, 7, 10, 19] Multiplication of Identical elements : 7980
Time complexity: O(M^N) as the number of combinations generated is M choose N.
Auxiliary space: O(1) constant extra space is required
Method #2 : Using reduce()
Python3
import functools # initialize lists test_list1 = [ 5 , 6 , 10 , 4 , 7 , 1 , 19 ] test_list2 = [ 6 , 6 , 10 , 3 , 7 , 10 , 19 ] # printing original lists print ( "The original list 1 is : " + str (test_list1)) print ( "The original list 2 is : " + str (test_list2)) # Index match element Product # using functools.reduce() res = 1 res = functools. reduce (( lambda x, y: x * y), [x for x, y in zip (test_list1, test_list2) if x = = y]) # printing result print ( "Multiplication of Identical elements : " + str (res)) #This code is contributed by Edula Vinay Kumar Reddy |
Output
The original list 1 is : [5, 6, 10, 4, 7, 1, 19] The original list 2 is : [6, 6, 10, 3, 7, 10, 19] Multiplication of Identical elements : 7980
Time complexity: o(n)
Space complexity: o(n)