Open In App

Python | Convert tuple records to single string

Improve
Improve
Like Article
Like
Save
Share
Report

Sometimes, while working with data, we can have a problem in which we have tuple records and we need to change it’s to comma-separated strings. These can be data regarding names. This kind of problem has its application in the web development domain. Let’s discuss certain ways in which this problem can be solved

Method #1: Using join() + list comprehension

In this method, we just iterate through the list tuple elements and perform the join among them separated by spaces to join them as a single string of records. 

Step-by-step approach:

  1. Convert the list of tuples to a single string using a list comprehension and the join() method.
  2. In the list comprehension, iterate through each tuple in test_list.
  3. For each tuple, join the two elements (which are strings) with a space using the join() method.
  4. Join all the resulting strings from step 3 with a comma and space using the join() method again.
  5. Store the resulting string in a variable named res.
  6. Print the resulting string using the print() function and string concatenation to join the string with a message.

Below is the implementation of the above approach:

Python3




# Python3 code to demonstrate working of
# Convert tuple records to single string
# Using list comprehension + join()
 
# Initializing list
test_list = [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# Convert tuple records to a single string
# Using list comprehension + join()
res = ', '.join([' '.join(sub) for sub in test_list])
 
# printing result
print("The string after tuple conversion: " + res)


Output

The original list is : [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
The string after tuple conversion: Manjeet Singh, Nikhil Meherwal, Akshat Garg

Time Complexity: O(n), where n is the number of tuples in the list.
Auxiliary Space: O(m), where m is the total length of all strings in the tuples.

Method #2: Using map() + join()

This method performs this task similar to the above function. The difference is just that it uses map() for extending join logic rather than list comprehension. 

Python3




# Python3 code to demonstrate working of
# Convert tuple records to single string
# Using map() + join()
 
# Initializing list
test_list = [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# Convert tuple records to a single string
# Using map() + join()
res = ', '.join(map(" ".join, test_list))
 
# printing result
print("The string after tuple conversion: " + res)


Output

The original list is : [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
The string after tuple conversion: Manjeet Singh, Nikhil Meherwal, Akshat Garg

Time complexity: O(n) where n is the number of elements in the list.
Auxiliary space: O(1) as only a single string variable ‘res’ is used.

Method #3 : Using join() and replace() methods

Python3




# Python3 code to demonstrate working of
# Convert tuple records to single string
 
# Initializing list
test_list = [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# Convert tuple records to a single string
res = []
for i in test_list:
    x = " ".join(i)
    res.append(x)
res = str(res)
res = res.replace("[", "")
res = res.replace("]", "")
# printing result
print("The string after tuple conversion: " + res)


Output

The original list is : [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
The string after tuple conversion: 'Manjeet Singh', 'Nikhil Meherwal', 'Akshat Garg'

Time complexity: O(n), where n is the length of the input list.
Auxiliary space: O(n), as the space required to store the output list and string grows linearly with the input size. 

Method #4 : Using a format():

Python3




# Define the list of tuples
test_list = [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
# Print the original list
print("The original list: " + str(test_list))
# Use the format() method to join the full names with a comma
res = ', '.join('{} {}'.format(first, last) for first, last in test_list)
# Print the final result
print("The string after tuple conversion: " + res)
 
 
#This code is contributed by Jyothi Pinjala.


Output

The original list: [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
The string after tuple conversion: Manjeet Singh, Nikhil Meherwal, Akshat Garg

Time Complexity: O(n)
Auxiliary Space: O(n)

Method 5: Using a simple for loop:

This code initializes an empty string res and iterates through each tuple in the list test_list. For each tuple, it adds the first and last name to res, along with a comma and space. Finally, it removes the last comma and space from res. The result is the same as the one obtained using the map() and join() methods.

Python3




# Initializing list
test_list = [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# Convert tuple records to a single string using a for loop
res = ""
for tuple in test_list:
    res += tuple[0] + " " + tuple[1] + ", "
 
# remove the last comma and space
res = res[:-2]
 
# printing result
print("The string after tuple conversion: " + res)


Output

The original list is : [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
The string after tuple conversion: Manjeet Singh, Nikhil Meherwal, Akshat Garg

Time complexity: O(n), where n is the number of tuples in the test_list. 
Auxiliary space: O(m), where m is the length of the resulting string res.

Method 6: Using reduce() function

We can use reduce() function to combine the first and last name of each tuple record in the given list of tuples.

Algorithm:

  1. Import the reduce() function from the functools module.
  2. Define a lambda function that takes two arguments and concatenates them with a space in between.
  3. Pass the lambda function and the list of tuples to the reduce() function.
  4. Join the resulting list of names with a comma and a space in between.

Python3




from functools import reduce
 
# Initializing list
test_list = [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
 
# printing original list
print("The original list is : " + str(test_list))
 
# Using reduce() function to combine the first and last name of each tuple record
res = reduce(lambda x, y: x + ', ' + y, [name[0] + ' ' + name[1] for name in test_list])
 
# printing result
print("The string after tuple conversion: " + res)


Output

The original list is : [('Manjeet', 'Singh'), ('Nikhil', 'Meherwal'), ('Akshat', 'Garg')]
The string after tuple conversion: Manjeet Singh, Nikhil Meherwal, Akshat Garg

Time complexity: O(n)
Auxiliary space: O(n)



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