Open In App
Related Articles

Python | Flatten Tuples List to String

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report

Sometimes, while working with data, we can have a problem in which we need to perform interconversion of data. In this, we can have a problem of converting tuples list to a single String. Let’s discuss certain ways in which this task can be performed. 

Method #1: Using list comprehension + join() The combination of above functionalities can be used to perform this task. In this, we join all the individual string elements using join() and extraction of each element is done using list comprehension. 

Python3

# Python3 code to demonstrate working of
# Flatten Tuples List to String
# using join() + list comprehension
 
# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
 
# printing original tuples list
print("The original list : " + str(test_list))
 
# Flatten Tuples List to String
# using join() + list comprehension
res = ' '.join([idx for tup in test_list for idx in tup])
 
# printing result
print("Tuple list converted to String is : " + res)

                    
Output : 
The original list : [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
Tuple list converted to String is : 1 4 6 5 8 2 9 1 10

Time complexity: O(n) where n is the total number of elements in the list of tuples.
Auxiliary space: O(n) as the join function creates a new string with the concatenated elements from the list comprehension.

Method #2 : Using chain() + join() This is yet another method to perform this particular task. In this, we perform the task of extracting each of element of tuple list using chain() rather than list comprehension. 

Python3

# Python3 code to demonstrate working of
# Flatten Tuples List to String
# using chain() + join()
from itertools import chain
 
# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
 
# printing original tuples list
print("The original list : " + str(test_list))
 
# Flatten Tuples List to String
# using chain() + join()
res = ' '.join(chain(*test_list))
 
# printing result
print("Tuple list converted to String is : " + res)

                    
Output : 
The original list : [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
Tuple list converted to String is : 1 4 6 5 8 2 9 1 10

Time complexity: O(n), where n is the total number of elements in the input list of tuples.
Auxiliary Space: O(m), where m is the maximum length of any tuple in the input list.

Method #3 : Using extend(),list(),join() methods

Python3

# Python3 code to demonstrate working of
# Flatten Tuples List to String
 
# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
 
# printing original tuples list
print("The original list : " + str(test_list))
 
# Flatten Tuples List to String
res = []
for i in test_list:
    res.extend(list(i))
res = " ".join(res)
# printing result
print("Tuple list converted to String is : " + res)

                    

Output
The original list : [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
Tuple list converted to String is : 1 4 6 5 8 2 9 1 10

Time complexity: O(n), where n is the total number of elements in the input list of tuples.
Auxiliary space: O(n), as we create a new list res to store the flattened list of elements, and then join them into a single string.

Method 4: using the map() function and join() method

In this approach, we are using the sum() function with an empty tuple as the start value to flatten the list of tuples into a single tuple. Then we are using the map() function to convert each element of the tuple into a string, and finally using the join() method to join the elements of the tuple into a single string with space as the separator.

Python3

# Python3 code to demonstrate working of
# Flatten Tuples List to String
 
# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
 
# printing original tuples list
print("The original list : " + str(test_list))
 
# Flatten Tuples List to String
res = " ".join(map(str, sum(test_list, ())))
# printing result
print("Tuple list converted to String is : " + res)

                    

Output
The original list : [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
Tuple list converted to String is : 1 4 6 5 8 2 9 1 10

Time complexity: O(n), where n is the total number of elements in the list of tuples. 
Auxiliary space: O(n), where n is the total number of elements in the list of tuples.

Method #5: Using itertools and join()

The program initializes a list of tuples called test_list. It then uses the itertools.chain() method to flatten the list of tuples and the join() method to join the elements using space as the separator. Finally, it prints the original list and the flattened string.

  1. Import itertools module which provides tools for working with iterators.
  2. Use itertools.chain() method to flatten the list of tuples. It takes multiple iterables as arguments and returns a single iterator that produces the contents of those iterables as if they came from a single sequence.
  3. Use the * operator to unpack the list of tuples as arguments to chain() method.
  4. Use the join() method to join the flattened list of tuples into a single string with space as separator.
  5. Print the result.

Python3

import itertools
 
# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
 
# printing original tuples list
print("The original list : " + str(test_list))
 
# Flatten Tuples List to String
res = ' '.join(itertools.chain(*test_list))
 
# printing result
print("Tuple list converted to String is : " + res)

                    

Output
The original list : [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
Tuple list converted to String is : 1 4 6 5 8 2 9 1 10

Time complexity: O(n), where n is the total number of elements in the list of tuples.
Auxiliary Space: O(n), where n is the total number of elements in the list of tuples.

Method 6: Using nested loops

Step-by-step approach:

  1. Initialize an empty string res that will contain the flattened list of tuples as a string.
  2. Use a nested loop to iterate through each tuple in test_list and each element in each tuple:
  3. The outer loop iterates through each tuple in test_list using for tup in test_list:.
  4. The inner loop iterates through each element in each tuple using for element in tup:.
  5. Concatenate each element and a space character to res using res += element + ” “.
  6. Remove the last space character from res using res = res[:-1].
  7. Print the final flattened list of tuples as a string using print(“Tuple list converted to String is : ” + res).

Python3

# initialize list of tuple
test_list = [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
 
# printing original tuples list
print("The original list : " + str(test_list))
 
# Flatten Tuples List to String
res = ""
for tup in test_list:
    for element in tup:
        res += element + " "
 
# remove last space
res = res[:-1]
 
# printing result
print("Tuple list converted to String is : " + res)

                    

Output
The original list : [('1', '4', '6'), ('5', '8'), ('2', '9'), ('1', '10')]
Tuple list converted to String is : 1 4 6 5 8 2 9 1 10

The time complexity of this method is O(nm), where n is the number of tuples in the list and m is the maximum number of elements in any tuple. 
The auxiliary space complexity is O(nm), as we need to store each element of each tuple in the resulting string.



Last Updated : 21 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads