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
# Python 3 code to demonstrate # Remove K String from String List # using remove() # initializing list test_list = [ "bad" , "Lazyroar" , "bad" , "is" , "best" , "bad" ] # Printing original list print ( "Original list is : " + str (test_list)) # initializing K K = "bad" # using remove() to # Remove K String from String List while (K in test_list): test_list.remove(K) # Printing modified list print ( "Modified list is : " + str (test_list)) |
Original list is : ['bad', 'Lazyroar', 'bad', 'is', 'best', 'bad'] Modified list is : ['Lazyroar', '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
# Python 3 code to demonstrate # Remove K String from String List # using list comprehension # initializing list test_list = [ "bad" , "Lazyroar" , "bad" , "is" , "best" , "bad" ] # Printing original list print ( "Original list is : " + str (test_list)) # initializing K K = "bad" # using list comprehension to # Remove K String from String List test_list = [i for i in test_list if i ! = K] # Printing modified list print ( "Modified list is : " + str (test_list)) |
Original list is : ['bad', 'Lazyroar', 'bad', 'is', 'best', 'bad'] Modified list is : ['Lazyroar', '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
# Python 3 code to demonstrate # Remove K String from String List # initializing list test_list = [ "bad" , "Lazyroar" , "bad" , "is" , "best" , "bad" ] # Printing original list print ( "Original list is : " + str (test_list)) # initializing K K = "bad" x = "-" .join(test_list) x = x.replace(K,"") a = x.split( "-" ) while ("" in a ): a.remove("") # Printing modified list print ( "Modified list is : " + str (a)) |
Original list is : ['bad', 'Lazyroar', 'bad', 'is', 'best', 'bad'] Modified list is : ['Lazyroar', 'is', 'best']
Here’s another approach to removing a string ‘K’ from a string list, using a filter:
Python
# Python 3 code to demonstrate # Remove K String from String List # using filter() # initializing list test_list = [ "bad" , "Lazyroar" , "bad" , "is" , "best" , "bad" ] # Printing original list print ( "Original list is : " + str (test_list)) # initializing K K = "bad" # using filter to Remove K String from String List test_list = list ( filter ( lambda x: x! = K, test_list)) # Printing modified list print ( "Modified list is : " + str (test_list)) |
Original list is : ['bad', 'Lazyroar', 'bad', 'is', 'best', 'bad'] Modified list is : ['Lazyroar', '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.