Friday, December 27, 2024
Google search engine
HomeLanguagesPython – String Matrix Concatenation

Python – String Matrix Concatenation

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




# Python3 code to demonstrate
# String Matrix Concatenation
# Using list comprehension
 
# initializing list
test_list = [["neveropen", " is", " best"], [" I", " Love"], [" Gfg"]]
 
# printing original list
print("The original list : " + str(test_list))
 
# using list comprehension
# count of all the elements in list
res = "".join([ele for sub in test_list for ele in sub])
 
# print result
print("The Matrix Concatenation is : " + str(res))


Output

The original list : [['neveropen', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : neveropen 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




# Python3 code to demonstrate
# String Matrix Concatenation
# Using chain() + join()
from itertools import chain
 
# initializing list
test_list = [["neveropen", " is", " best"], [" I", " Love"], [" Gfg"]]
 
# printing original list
print("The original list : " + str(test_list))
 
# using chain() + join()
# String Matrix Concatenation
res = "".join(list(chain(*test_list)))
 
# print result
print("The Matrix Concatenation is : " + str(res))


Output

The original list : [['neveropen', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : neveropen 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




# Python3 code to demonstrate
# String Matrix Concatenation
 
# initializing list
test_list = [["neveropen", " is", " best"], [" I", " Love"], [" Gfg"]]
 
# printing original list
print("The original list : " + str(test_list))
 
res=[]
for i in test_list:
    res.extend(i)
res=" ".join(res)
 
# print result
print("The Matrix Concatenation is : " + str(res))


Output

The original list : [['neveropen', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : neveropen  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
 
# initializing list
test_list = [["neveropen", " is", " best"], [" I", " Love"], [" Gfg"]]
 
# printing original list
print("The original list : " + str(test_list))
 
# using reduce()
result = reduce(lambda x, y: x+y, reduce(lambda x, y: x+y, test_list))
 
# print result
print("The Matrix Concatenation is : " + str(result))
#This code is contributed by Edula Vinay Kumar Reddy


Output

The original list : [['neveropen', ' is', ' best'], [' I', ' Love'], [' Gfg']]
The Matrix Concatenation is : neveropen is best I Love Gfg

Time complexity: O(n)
Auxiliary Space: O(1)

RELATED ARTICLES

Most Popular

Recent Comments