Open In App

Python | Substring removal in String list

Improve
Improve
Like Article
Like
Save
Share
Report

While working with strings, one of the most used application is removing the part of string with another. Since string in itself is immutable, the knowledge of this utility in itself is quite useful. Here the removing of a substring in list of string is performed. Let’s discuss certain ways in which this can be performed. 

Method #1 : Using list comprehension + replace() The replace method can be coupled with the list comprehension technique to achieve this particular task. List comprehension performs the task of iterating through the list and replace method replaces the section of substring with empty string. 

Python3




# Python3 code to demonstrate
# Substring removal in String list
# using list comprehension + replace()
 
# initializing list
test_list = ['4', 'kg', 'butter', 'for', '40', 'bucks']
 
# printing original list
print("The original list : " + str(test_list ))
 
# using list comprehension + replace()
# Substring removal in String list
res = [sub.replace('4', '') for sub in test_list]
     
# print result
print("The list after substring removal : " + str(res))


Output : 

The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
The list after substring removal : ['', 'kg', 'butter', 'for', '0', 'bucks']

Time Complexity: O(n)
Auxiliary Space: O(n), where n is length of list.

  Method #2 : Using map() + lambda + replace() The combination of these functions can also be used to perform this particular task. The map and lambda help to perform the task same as list comprehension and replace method is used to perform the remove functionality. But this method is poor when it comes to performance than method above. 

Python3




# Python3 code to demonstrate
# Substring removal in String list
# using list comprehension + map() + lambda
 
# initializing list
test_list = ['4', 'kg', 'butter', 'for', '40', 'bucks']
 
# printing original list
print("The original list : " + str(test_list ))
 
# using list comprehension + map() + lambda
# Substring removal in String list
res = list(map(lambda st: str.replace(st, "4", ""), test_list))
     
# print result
print("The list after substring removal : " + str(res))


Output : 

The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
The list after substring removal : ['', 'kg', 'butter', 'for', '0', 'bucks']

Time Complexity: O(n*n) where n is the number of elements in the string list. The map() + lambda + replace() is used to perform the task and it takes O(n*n) time.
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the string list.

Method#3: Using Regular expression.

Python3




# Python3 code to demonstrate
# Substring removal in String list
# using regular expression
import re
 
# Initialize the list of strings
test_list = ['4', 'kg', 'butter', 'for', '40', 'bucks']
 
# Regular expression pattern to match the substring
pattern = re.compile(r'4')
 
# Replace the substring using re.sub()
result = [pattern.sub('', string) for string in test_list]
 
# printing original list
print("The original list : " + str(test_list ))
# print result
print("The list after substring removal : " + str(result))
#this code contributed by tvsk


Output

The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
The list after substring removal : ['', 'kg', 'butter', 'for', '0', 'bucks']

Time Complexity: O(n)

Space Complexity: O(n)

Method #4: Using a loop and string.replace()

The given code removes a specified substring from each string in a list of strings by looping through each string and using the replace() function.

Here’s a step-by-step explanation of the algorithm:

  1. Initialize a list of strings test_list and a string substring to be removed.
  2. Initialize an empty list result to store the modified strings.
  3. Loop through each string in test_list using a for loop.
  4. Use the replace() function to remove the substring from the current string, and append the modified string to the result list.
  5. After the loop, return result.

Python3




# Initialize the list of strings
test_list = ['4', 'kg', 'butter', 'for', '40', 'bucks']
 
# The substring to be removed
substring = '4'
 
# Loop through each string in the list and remove the substring
result = []
for string in test_list:
    result.append(string.replace(substring, ''))
 
# printing original list
print("The original list : " + str(test_list ))
# print result
print("The list after substring removal : " + str(result))
#This code is contributed by Vinay pinjala.


Output

The original list : ['4', 'kg', 'butter', 'for', '40', 'bucks']
The list after substring removal : ['', 'kg', 'butter', 'for', '0', 'bucks']

The time complexity of this algorithm is O(n*m), where n is the number of strings in the list and m is the average length of each string. This is because we iterate through each string and replace the substring, which takes O(m) time for each string.

The auxiliary space of this algorithm is also O(n*m), since we create a new list of modified strings that has the same length and size as the original list.



Last Updated : 09 Apr, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads