There are a few ways to go about doing this, and I'll address 2. One is to split up the string by words and compare word by word against the string that you want to remove words from. The other is to scan the string for each grouping of those characters. I'll give an example of each with their advantages and disadvantages.
The first way is to split the list by words. This is good because it goes over the whole list, and you can use a list comprehension to pull out just the values you want, however, as written it only splits on spaces, so it would miss anything that is touching punctuation. This question addresses how to avoid that problem so that this answer could work.
your_string = "it's a toy,isn't a tool.i don't know anything."
removal_list = ["it's","didn't","isn't","don't"]
edit_string_as_list = your_string.split()
final_list = [word for word in edit_string_as_list if word not in removal_list]
final_string = ' '.join(final_list)
The second option is to remove all instances of those terms in the string as is. This is good because it can avoid the punctuation problems, but it does have a drawback; if you remove something and it is part of another word, that part will be removed (For example, if you have a string with the word "sand" in it and try to remove "and" it will remove the "and" from "sand" and leave "s" in the string.)
your_string = "it's a toy,isn't a tool.i don't know anything."
removal_list = ["it's","didn't","isn't","don't"]
for word in removal_list:
your_string = your_string.replace(word, "")
I hope one of these solutions meets your needs.