Open In App

Python | Ways to split a string in different ways

Last Updated : 26 Feb, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

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. 


Practice Tags :

Similar Reads

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy