Friday, December 27, 2024
Google search engine
HomeLanguagesPython | Repeating tuples N times

Python | Repeating tuples N times

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




# Python3 code to demonstrate working of
# Repeating tuples N times
# using * operator
 
# initialize tuple
test_tup = (1, 3)
 
# printing original tuple
print("The original tuple : " + str(test_tup))
 
# initialize N
N = 4
 
# Repeating tuples N times
# using * operator
res = ((test_tup, ) * N)
 
# printing result
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




# Python3 code to demonstrate working of
# Repeating tuples N times
# using repeat()
from itertools import repeat
 
# initialize tuple
test_tup = (1, 3)
 
# printing original tuple
print("The original tuple : " + str(test_tup))
 
# initialize N
N = 4
 
# Repeating tuples N times
# using repeat()
res = tuple(repeat(test_tup, N))
 
# printing result
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




# Python3 code to demonstrate working of
# Repeating tuples N times
 
# initialize tuple
test_tup = (1, 3)
 
# printing original tuple
print("The original tuple : " + str(test_tup))
 
# initialize N
N = 4
 
# Repeating tuples N times
res=[]
for i in range(0,N):
    res.append(test_tup)
res=tuple(res)
# printing result
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




# Python3 code to demonstrate working of
# Repeating tuples N times
  
# initialize tuple
test_tup = (1, 3)
  
# printing original tuple
print("The original tuple : " + str(test_tup))
  
# initialize N
N = 4
  
# Repeating tuples N times
res = [test_tup for i in range(N)]
res = tuple(res)
# printing result
print("The duplicated tuple elements are : " + str(res))
#This code is contributed by Edula Vinay Kumar Reddy


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




# Python3 code to demonstrate working of
# Repeating tuples N times
# initialize tuple
test_tup = (1, 3)
  
# printing original tuple
print("The original tuple : " + str(test_tup))
  
# initialize N
N = 4
  
# Repeating tuples N times
res = tuple(map(lambda x : test_tup, range(N)))
  
# printing result
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

  1. Append given tuple into a list
  2. Repeat the list by using operator.mul()
  3. Convert the list of tuples to tuple of tuples
  4. Display output tuple

Python3




# Python3 code to demonstrate working of
# Repeating tuples N times
 
# initialize tuple
test_tup = (1, 3)
 
# printing original tuple
print("The original tuple : " + str(test_tup))
 
# initialize N
N = 4
 
# Repeating tuples N times
import operator
x=[test_tup]
res=tuple(operator.mul(x,N))
# printing result
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




# initialize tuple
test_tup = (1, 3)
 
# initialize N
N = 4
 
# repeat tuples N times
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 result
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.

RELATED ARTICLES

Most Popular

Recent Comments