Open In App

Python | Tuple multiplication

Last Updated : 23 Apr, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with records, we can have a problem in which we may need to perform multiplication of tuples. This problem can occur in day-day programming. Let’s discuss certain ways in which this task can be performed. 

Method #1 : Using zip() + generator expression The combination of above functions can be used to perform this task. In this, we perform the task of multiplication using generator expression and mapping index of each tuple is done by zip(). 

Python3




# Python3 code to demonstrate working of
# Tuple multiplication
# using zip() + generator expression
 
# initialize tuples
test_tup1 = (10, 4, 5, 6)
test_tup2 = (5, 6, 7, 5)
 
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
 
# Tuple multiplication
# using zip() + generator expression
res = tuple(ele1 * ele2 for ele1, ele2 in zip(test_tup1, test_tup2))
 
# printing result
print("The multiplied tuple : " + str(res))


Output

The original tuple 1 : (10, 4, 5, 6)
The original tuple 2 : (5, 6, 7, 5)
The multiplied tuple : (50, 24, 35, 30)

Time complexity: O(n), where n is the length of the smaller tuple.
Auxiliary space: O(n), where n is the length of the generated result tuple.

Method #2 : Using map() + mul The combination of above functionalities can also perform this task. In this, we perform the task of extending logic of multiplication using mul and mapping is done by map(). 

Python3




# Python3 code to demonstrate working of
# Tuple multiplication
# using map() + mul
from operator import mul
 
# initialize tuples
test_tup1 = (10, 4, 5, 6)
test_tup2 = (5, 6, 7, 5)
 
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
 
# Tuple multiplication
# using map() + mul
res = tuple(map(mul, test_tup1, test_tup2))
 
# printing result
print("The multiplied tuple : " + str(res))


Output

The original tuple 1 : (10, 4, 5, 6)
The original tuple 2 : (5, 6, 7, 5)
The multiplied tuple : (50, 24, 35, 30)

Time complexity: O(n), where n is the length of the tuples test_tup1 and test_tup2, as the map function iterates through each element of the tuples once.
Auxiliary space: O(n) as well, as it creates a new tuple to store the multiplied result using the map function.

Method #3: Using for loop

Python3




# Python3 code to demonstrate working of
# Tuple multiplication
 
# initialize tuples
test_tup1 = (10, 4, 5, 6)
test_tup2 = (5, 6, 7, 5)
 
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
 
# Tuple multiplication
res=[]
for i in range(0,len(test_tup1)):
    res.append(test_tup1[i]*test_tup2[i])
res=tuple(res)
 
# printing result
print("The multiplied tuple : " + str(res))


Output

The original tuple 1 : (10, 4, 5, 6)
The original tuple 2 : (5, 6, 7, 5)
The multiplied tuple : (50, 24, 35, 30)

Method #3: Using numpy

Note: install numpy module using command “pip install numpy”

Python3




import numpy as np
 
# initialize tuples
test_tup1 = (10, 4, 5, 6)
test_tup2 = (5, 6, 7, 5)
# printing original tuples
print("The original tuple 1 : " + str(test_tup1))
print("The original tuple 2 : " + str(test_tup2))
# convert tuples to numpy arrays
arr1 = np.array(test_tup1)
arr2 = np.array(test_tup2)
 
# perform element-wise multiplication
res = arr1 * arr2
 
# convert result back to tuple
res = tuple(res)
 
# printing result
print("The multiplied tuple : " + str(res))
 
#This code is contributed by Edula Vinay Kumar Reddy


Output:

The original tuple 1 : (10, 4, 5, 6)
The original tuple 2 : (5, 6, 7, 5)
The multiplied tuple : (50, 24, 35, 30)

Time complexity: O(n) where n is the number of elements in the tuple. This is because numpy’s array multiplication is implemented in C and is highly optimized. The Auxiliary space: O(n) as it requires an additional numpy array to store the result.

Method 4 :  using a list comprehension.

  1. Initialize two tuples test_tup1 and test_tup2 with the values (10, 4, 5, 6) and (5, 6, 7, 5), respectively.
  2. Define a list comprehension [x * y for x, y in zip(test_tup1, test_tup2)] that iterates through both tuples in parallel using the zip function, multiplies the corresponding elements of each tuple, and returns a list of the results.
  3. Convert the resulting list into a tuple using the tuple function and assign it to the variable res.
  4. Print the value of res, which is (50, 24, 35, 30).

Python3




test_tup1 = (10, 4, 5, 6)
test_tup2 = (5, 6, 7, 5)
 
res = tuple([x * y for x, y in zip(test_tup1, test_tup2)])
 
print(res)  # (50, 24, 35, 30)


Output

(50, 24, 35, 30)

The time complexity O(n), where n is the length of the tuples. 

The space complexity : O(n) .



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads