Python – String Matrix Concatenation
Last Updated :
13 Apr, 2023
Sometimes, while working with Matrix we can have a problem in which we have Strings and we need a universal concatenation of all the String present in it. Let’s discuss certain ways in which this task can be performed.
Method #1 : Using list comprehension + join() We can solve this problem using list comprehension as a potential shorthand to the conventional loops that we may use to perform this particular task. We just join the elements extracted and put them into a as a single string.
Python3
test_list = [[ "geeksforgeeks" , " is" , " best" ], [ " I" , " Love" ], [ " Gfg" ]]
print ( "The original list : " + str (test_list))
res = "".join([ele for sub in test_list for ele in sub])
print ( "The Matrix Concatenation is : " + str (res))
|
Output
The original list : [['geeksforgeeks', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : geeksforgeeks is best I Love Gfg
Time complexity: O(m*n), because it performs the same number of iterations as the original code.
Auxiliary space: O(m*n) as well, because it creates a list of m * n elements
Method #2: Using chain() + join() This particular problem can also be solved using the chain function instead of list comprehension in which we use the conventional join function to join.
Python3
from itertools import chain
test_list = [[ "geeksforgeeks" , " is" , " best" ], [ " I" , " Love" ], [ " Gfg" ]]
print ( "The original list : " + str (test_list))
res = "".join( list (chain( * test_list)))
print ( "The Matrix Concatenation is : " + str (res))
|
Output
The original list : [['geeksforgeeks', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : geeksforgeeks is best I Love Gfg
Time complexity: O(m*n), because it performs the same number of iterations as the original code.
Auxiliary space: O(m*n) as well, because it creates a list of m * n elements
Method #3 : Using extend() and join() methods
Python3
test_list = [[ "geeksforgeeks" , " is" , " best" ], [ " I" , " Love" ], [ " Gfg" ]]
print ( "The original list : " + str (test_list))
res = []
for i in test_list:
res.extend(i)
res = " " .join(res)
print ( "The Matrix Concatenation is : " + str (res))
|
Output
The original list : [['geeksforgeeks', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : geeksforgeeks is best I Love Gfg
Time Complexity: O(n*n), where n is the number of elements in the list “test_list”.
Auxiliary Space: O(n), where n is the number of elements in the list “test_list”.
Method #4 : Using reduce()
Here, reduce() function applies the lambda function to the items of the list in a cumulative way, such that the first item is passed as the first argument, the second item as the second argument and so on. In this case, the lambda function takes two arguments x and y and concatenates them.
Python3
from functools import reduce
test_list = [[ "geeksforgeeks" , " is" , " best" ], [ " I" , " Love" ], [ " Gfg" ]]
print ( "The original list : " + str (test_list))
result = reduce ( lambda x, y: x + y, reduce ( lambda x, y: x + y, test_list))
print ( "The Matrix Concatenation is : " + str (result))
|
Output
The original list : [['geeksforgeeks', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : geeksforgeeks is best I Love Gfg
Time complexity: O(n)
Auxiliary Space: O(1)
Share your thoughts in the comments
Please Login to comment...