Python | String Split including spaces
The problems and at the same time applications of list splitting are quite common while working with python strings. The spaces usually tend to ignore in the use cases. But sometimes, we might not need to omit the spaces but include them in our programming output. Let’s discuss certain ways in which this problem can be solved.
Method #1: Using split() + list comprehension
This kind of operation can be performed using the split function and list comprehension. The main difference in not omitting the space is that we specifically add the spaces that we might have omitted in the process, after each element.
Python3
test_string = "GfG is Best"
print ( "The original string : " + str (test_string))
res = [i for j in test_string.split() for i in (j, ' ' )][: - 1 ]
print ( "The list without omitting spaces : " + str (res))
|
Output
The original string : GfG is Best
The list without omitting spaces : ['GfG', ' ', 'is', ' ', 'Best']
Time complexity: O(n), where n is the length of the test_string.
Auxiliary space complexity: O(n), where n is the length of the test_string .
Method #2 : Using zip() + chain() + cycle()
This particular task can also be performed using the combination of above 3 functions. The zip function can be used to bind the logic, chain, and cycle function to perform the task of inserting the space at the appropriate position.
Python3
from itertools import chain, cycle
test_string = "GfG is Best"
print ( "The original string : " + str (test_string))
res = list (chain( * zip (test_string.split(), cycle( ' ' ))))[: - 1 ]
print ( "The list without omitting spaces : " + str (res))
|
Output :
The original string : GfG is Best
The list without omitting spaces : ['GfG', ' ', 'is', ' ', 'Best']
Time complexity: O(n) where n is the length of the string.
Auxiliary space complexity: O(n) where n is the length of the string.
Method #3: Using replace() and split() methods
Python3
test_string = "GfG is Best"
print ( "The original string : " + str (test_string))
x = test_string.replace( " " , "* *" )
res = x.split( "*" )
print ( "The list without omitting spaces : " + str (res))
|
Output
The original string : GfG is Best
The list without omitting spaces : ['GfG', ' ', 'is', ' ', 'Best']
Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(n), where n is the length of the input string.
Method #4: Using re
Algorithm:
- Import the re module
- Initialize the string to be split
- Print the original string
- Use re.split() to split the string including spaces. Here, we split the string on every whitespace character and preserve the whitespace as a separate element in the result list by using the capture group parentheses.
- Remove any empty strings from the list
- Print the final result
Python3
import re
test_string = "GfG is Best"
print ( "The original string : " + str (test_string))
res = re.split(r '(\s)' , test_string)
res = [x for x in res if x ! = '']
print ( "The list without omitting spaces : " + str (res))
|
Output
The original string : GfG is Best
The list without omitting spaces : ['GfG', ' ', 'is', ' ', 'Best']
Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(n), where n is the length of the input string.
Last Updated :
23 Mar, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...