Python | Ways to split a string in different ways
The most common problem we have encountered in Python is splitting a string by a delimiter, But in some cases we have to split in different ways to get the answer. In this article, we will get substrings obtained by splitting string in different ways. Examples:
Input : Paras_Jain_Moengage_best
Output : [‘Paras’, ‘Paras_Jain’, ‘Paras_Jain_Moengage’, ‘Paras_Jain_Moengage_best’]
Input : chunky_2808_GFG_Codechef
Output : [‘chunky’, ‘chunky_2808’, ‘chunky_2808_GFG’, ‘chunky_2808_GFG_Codechef’]
Below are some ways to do the task.
Method #1: Using Iteration
Python3
Input = "Geeks_for_geeks_is_best"
split_string = Input .split( '_' )
Output = []
for a in range ( len (split_string)):
temp = split_string[:a + 1 ]
temp = "_".join(temp)
Output.append(temp)
print (Output)
|
Output:[‘Geeks’, ‘Geeks_for’, ‘Geeks_for_geeks’, ‘Geeks_for_geeks_is’, ‘Geeks_for_geeks_is_best’]
Time Complexity: O(n), where n is the length of the string.
Space Complexity: O(n), where n is the length of the string.
Method 2: Using Itertools
Python3
from itertools import accumulate
Input = "Geeks_for_geeks_is_best"
Output = [ * accumulate( Input .split( '_' ), lambda temp1, temp2 :
'_' .join([temp1, temp2])), ]
print (Output)
|
Output:[‘Geeks’, ‘Geeks_for’, ‘Geeks_for_geeks’, ‘Geeks_for_geeks_is’, ‘Geeks_for_geeks_is_best’]
Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(n), as we are creating a list to store the output of the accumulate function.
Method#3 : Using re module and string slicing
Python3
import re
Input = "Geeks_for_geeks_is_best"
ans = []
for i in re.finditer( "(_)" , Input ):
temp = Input [:i.span()[ 0 ]]
ans.append(temp)
ans.append( Input )
print (ans)
|
Output:
['Geeks', 'Geeks_for', 'Geeks_for_geeks', 'Geeks_for_geeks_is', 'Geeks_for_geeks_is_best']
Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(m), where m is the number of substrings generated.
Last Updated :
26 Feb, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...