Python | Repeating tuples N times
Last Updated :
05 May, 2023
Sometimes, while working with data, we might have a problem in which we need to replicate, i.e construct duplicates of tuples. This is an important application in many domains of computer programming. Let’s discuss certain ways in which this task can be performed.
Method #1 : Using * operator The multiplication operator can be used to construct the duplicates of a container. This also can be extended to tuples even though tuples are immutable.
Python3
test_tup = ( 1 , 3 )
print ( "The original tuple : " + str (test_tup))
N = 4
res = ((test_tup, ) * N)
print ( "The duplicated tuple elements are : " + str (res))
|
Output
The original tuple : (1, 3)
The duplicated tuple elements are : ((1, 3), (1, 3), (1, 3), (1, 3))
Method #2 : Using repeat() The internal function of itertools library, repeat() can be used to achieve the solution to the above problem.
Python3
from itertools import repeat
test_tup = ( 1 , 3 )
print ( "The original tuple : " + str (test_tup))
N = 4
res = tuple (repeat(test_tup, N))
print ( "The duplicated tuple elements are : " + str (res))
|
Output
The original tuple : (1, 3)
The duplicated tuple elements are : ((1, 3), (1, 3), (1, 3), (1, 3))
Method #3 : Using tuple() method and for loop
Python3
test_tup = ( 1 , 3 )
print ( "The original tuple : " + str (test_tup))
N = 4
res = []
for i in range ( 0 ,N):
res.append(test_tup)
res = tuple (res)
print ( "The duplicated tuple elements are : " + str (res))
|
Output
The original tuple : (1, 3)
The duplicated tuple elements are : ((1, 3), (1, 3), (1, 3), (1, 3))
4. Using list comprehension:
Python3 code to demonstrate working of Repeating tuples N times using list comprehension
Python3
test_tup = ( 1 , 3 )
print ( "The original tuple : " + str (test_tup))
N = 4
res = [test_tup for i in range (N)]
res = tuple (res)
print ( "The duplicated tuple elements are : " + str (res))
|
Output
The original tuple : (1, 3)
The duplicated tuple elements are : ((1, 3), (1, 3), (1, 3), (1, 3))
Time complexity: O(n)
Auxiliary space: O(n)
Method #5: Using map() and lambda
Python3
test_tup = ( 1 , 3 )
print ( "The original tuple : " + str (test_tup))
N = 4
res = tuple ( map ( lambda x : test_tup, range (N)))
print ( "The duplicated tuple elements are : " + str (res))
|
Output
The original tuple : (1, 3)
The duplicated tuple elements are : ((1, 3), (1, 3), (1, 3), (1, 3))
Time complexity: O(n)
Auxiliary space: O(n)
Method #6 : Using operator.mul()
Approach
- Append given tuple into a list
- Repeat the list by using operator.mul()
- Convert the list of tuples to tuple of tuples
- Display output tuple
Python3
test_tup = ( 1 , 3 )
print ( "The original tuple : " + str (test_tup))
N = 4
import operator
x = [test_tup]
res = tuple (operator.mul(x,N))
print ( "The duplicated tuple elements are : " + str (res))
|
Output
The original tuple : (1, 3)
The duplicated tuple elements are : ((1, 3), (1, 3), (1, 3), (1, 3))
Time Complexity : O(N), where N is the input variable
Auxiliary Space : O(N), where N is the input variable
Method 7 : Use recursion
Here are the steps for this method:
Initialize the tuple test_tup.
Initialize the integer N.
Define a function repeat_tuple() that takes a tuple test_tup and an integer N.
If N is equal to 1, return the tuple test_tup.
Otherwise, concatenate the tuple test_tup with the result of calling repeat_tuple() with test_tup and N-1 as arguments.
Assign the final result to the variable res.
Print the result.
Python3
test_tup = ( 1 , 3 )
N = 4
def repeat_tuple(test_tup, N):
if N = = 1 :
return (test_tup,)
else :
return (test_tup,) + repeat_tuple(test_tup, N - 1 )
res = repeat_tuple(test_tup, N)
print ( "The duplicated tuple elements are : " + str (res))
|
Output
The duplicated tuple elements are : ((1, 3), (1, 3), (1, 3), (1, 3))
The time complexity of this method is O(N), as the function is called recursively N times.
The auxiliary space of this method is also O(N), as the size of the resulting tuple is N times the size of the original tuple.
Please Login to comment...