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 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))
|
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()
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 |
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)