Python – Remove String from String List
Last Updated :
24 Mar, 2023
This particular article is indeed a very useful one for Machine Learning enthusiast as it solves a good problem for them. In Machine Learning we generally encounter this issue of getting a particular string in huge amount of data and handling that sometimes becomes a tedious task. Lets discuss certain way outs to solve this problem.
Method #1: Using remove() This particular method is quite naive and not recommended to use, but is indeed a method to perform this task. remove() generally removes the first occurrence of K string and we keep iterating this process until no K string is found in list.
Python3
test_list = [ "bad" , "GeeksforGeeks" , "bad" , "is" , "best" , "bad" ]
print ( "Original list is : " + str (test_list))
K = "bad"
while (K in test_list):
test_list.remove(K)
print ( "Modified list is : " + str (test_list))
|
Output :
Original list is : ['bad', 'GeeksforGeeks', 'bad', 'is', 'best', 'bad']
Modified list is : ['GeeksforGeeks', 'is', 'best']
Time Complexity: O(n), where n is the number of elements in the list “test_list”.
Auxiliary Space: O(1), constant extra space is required
Method #2: Using List Comprehension More concise and better approach to remove all the K strings, it just checks if the string is not K and re-makes the list with all strings that are not K.
Python3
test_list = [ "bad" , "GeeksforGeeks" , "bad" , "is" , "best" , "bad" ]
print ( "Original list is : " + str (test_list))
K = "bad"
test_list = [i for i in test_list if i ! = K]
print ( "Modified list is : " + str (test_list))
|
Output :
Original list is : ['bad', 'GeeksforGeeks', 'bad', 'is', 'best', 'bad']
Modified list is : ['GeeksforGeeks', 'is', 'best']
Time Complexity: O(n)
Auxiliary Space: O(n), where n is length of list.
Method #3 : Using join(),replace(),split() and remove() methods
Python3
test_list = [ "bad" , "GeeksforGeeks" , "bad" , "is" , "best" , "bad" ]
print ( "Original list is : " + str (test_list))
K = "bad"
x = "-" .join(test_list)
x = x.replace(K,"")
a = x.split( "-" )
while ("" in a ):
a.remove("")
print ( "Modified list is : " + str (a))
|
Output
Original list is : ['bad', 'GeeksforGeeks', 'bad', 'is', 'best', 'bad']
Modified list is : ['GeeksforGeeks', 'is', 'best']
Here’s another approach to removing a string ‘K’ from a string list, using a filter:
Python
test_list = [ "bad" , "GeeksforGeeks" , "bad" , "is" , "best" , "bad" ]
print ( "Original list is : " + str (test_list))
K = "bad"
test_list = list ( filter ( lambda x: x! = K, test_list))
print ( "Modified list is : " + str (test_list))
|
Output
Original list is : ['bad', 'GeeksforGeeks', 'bad', 'is', 'best', 'bad']
Modified list is : ['GeeksforGeeks', 'is', 'best']
This approach uses the filter() function to create a filtered list of elements from test_list that are not equal to K. The list() function is then used to convert the filtered list into a list.
Time complexity: O(n), where n is the number of elements in the list test_list.
Space complexity: O(n), since a new list is created.
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...