Given a list of characters, merge all of them into a string. Examples:
Input : ['g', 'e', 'e', 'k', 's', 'f', 'o', 'r', 'g', 'e', 'e', 'k', 's'] Output : neveropen Input : ['p', 'r', 'o', 'g', 'r', 'a', 'm', 'm', 'i', 'n', 'g'] Output : programming
Initialize an empty string at the beginning. Traverse in the list of characters, for every index add character to the initial string. After complete traversal, print the string which has been added with every character.
Implementation:
Python
# Python program to convert a list # of character def convert(s): # initialization of string to "" new = "" # traverse in the string for x in s: new + = x # return string return new # driver code s = [ 'g' , 'e' , 'e' , 'k' , 's' , 'f' , 'o' , 'r' , 'g' , 'e' , 'e' , 'k' , 's' ] print (convert(s)) |
neveropen
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #2: Using join() function
By using join() function in python, all characters in the list can be joined. The syntax is:
str = "" str1 = ( "Lazyroar", "for", "Lazyroar" ) str.join(str1)
The list of characters can be joined easily by initializing str=”” so that there are no spaces in between.
Implementation:
Python
# Python program to convert a list # of character def convert(s): # initialization of string to "" str1 = "" # using join function join the list s by # separating words by str1 return (str1.join(s)) # driver code s = [ 'g' , 'e' , 'e' , 'k' , 's' , 'f' , 'o' , 'r' , 'g' , 'e' , 'e' , 'k' , 's' ] print (convert(s)) |
neveropen
Time Complexity: O(n)
Auxiliary Space: O(n)
Method #3: Using reduce() function
Reduce function is used to convert the iterables to reduce in a single cumulative value.
Follow the below steps to implement the above idea:
- Import the functools module.
- Define a function called convert that takes a list of characters s as input.
- Use the reduce() function from the functools module to concatenate the elements of the list s into a single string str1. The lambda function passed to reduce() takes two arguments x and y, and concatenates them.
- Return the string str1.
- Define a list of characters s containing 13 elements.
- Call the convert() function with the list s as input.
- Print the result, which is the concatenated string of all the elements in s.
Below is the implementation of the above approach:
Python3
# Python program to convert a list # of character import functools def convert(s): # Using reduce to join the list s to string str1 = functools. reduce ( lambda x,y : x + y, s) # Return string 1 return str1 # driver code s = [ 'g' , 'e' , 'e' , 'k' , 's' , 'f' , 'o' , 'r' , 'g' , 'e' , 'e' , 'k' , 's' ] print (convert(s)) |
neveropen
Time Complexity: O(n), where n is the length of the list.
Auxiliary Space: O(n), where n is the length of the string generated by the reduce function.
Method #4: Using list comprehension
Python3
s = [ 'g' , 'e' , 'e' , 'k' , 's' , 'f' , 'o' , 'r' , 'g' , 'e' , 'e' , 'k' ] x = "".join([ str (i) for i in s]) print (x) |
Lazyroarforgeek
Time Complexity: O(n), where n is the length of the list.
Auxiliary Space: O(n), where n is the length of the string generated.
Method #5: Using enumerate function
Python3
s = [ 'g' , 'e' , 'e' , 'k' , 's' , 'f' , 'o' , 'r' , 'g' , 'e' , 'e' , 'k' ] x = "".join([ str (i) for a,i in enumerate (s)]) print (x) |
Lazyroarforgeek
The time complexity of this code is O(n), where n is the length of the list ‘s’.
The space complexity of this code is also O(n), since the string ‘x’ will take up additional space in memory that is proportional to the size of the list ‘s’.