Python | Ways to split a string in different ways
Last Updated :
26 Feb, 2023
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
# Python code to split string in substring manner
# Input initialisation
Input = "Geeks_for_geeks_is_best"
# Split initialise
split_string = Input.split('_')
# Output list initialise
Output = []
# Iteration
for a in range(len(split_string)):
temp = split_string[:a + 1]
temp = "_".join(temp)
Output.append(temp)
# print output
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
# Python code to split string in substring manner
# Importing
from itertools import accumulate
# Input initialisation
Input = "Geeks_for_geeks_is_best"
# Using accumulate
Output = [*accumulate(Input.split('_'), lambda temp1, temp2 :
'_'.join([temp1, temp2])), ]
# Printing output
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
# Python code to split string in substring manner
# Importing
import re
# Input initialisation
Input = "Geeks_for_geeks_is_best"
# Using re module with string slicing to generate substring
ans = []
for i in re.finditer("(_)", Input):
temp = Input[:i.span()[0]]
ans.append(temp)
# inserting last substring
ans.append(Input)
# Printing output
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.
Similar Reads
Ways to split strings using newline delimiter - Python The goal is to break down the string wherever a newline character (\n, \r, or \r\n) appears, making it easier to process each line individually. For example, in the string "line1\nline2\rline3\r\nline4", different newline characters are used and we aim to efficiently split this string into separate
2 min read
Ways to split strings on Uppercase characters - Python Splitting strings on uppercase characters means dividing a string into parts whenever an uppercase letter is encountered.For example, given a string like "CamelCaseString", we may want to split it into ["Camel", "Case", "String"]. Let's discuss different ways to achieve this.Using Regular Expression
3 min read
Split and join a string in Python The goal here is to split a string into smaller parts based on a delimiter and then join those parts back together with a different delimiter. For example, given the string "Hello, how are you?", you might want to split it by spaces to get a list of individual words and then join them back together
3 min read
Split a String by a Delimiter in Python In Python Programming, the split() method is used to split a string into a list of substrings which is based on the specified delimiter. This method takes the delimiter as an argument and returns the list of substrings. Along with this method, we can use various approaches wot split a string by the
2 min read
Python - Double Split String to Matrix Given a String, perform the double split, 1st for rows, and next for individual elements so that the given string can be converted to a matrix. Examples: Input : test_str = 'Gfg,best*for,all*geeks,and,CS', row_splt = "*", ele_splt = "," Output : [['Gfg', 'best'], ['for', 'all'], ['geeks', 'and', 'CS
6 min read
Python | Exceptional Split in String Sometimes, while working with Strings, we may need to perform the split operation. The straightforward split is easy. But sometimes, we may have a problem in which we need to perform split on certain characters but have exceptions. This discusses split on comma, with the exception that comma should
4 min read