我有如下列表:
dirtylist = ["lemons zested", "grated cheddar cheese", "carrots, thinly chopped"]
这是一个词汇列表,我希望从列表中的每个字符串项中删除这些词汇:
bannedWord = ['grated', 'zested', 'thinly', 'chopped', ',']
我尝试生成的结果列表如下:
cleaner_list = ["lemons", "cheddar cheese", "carrots"]
到目前为止,我未能实现这一点。我的尝试如下所示:
import re
dirtylist = ["lemons zested", "grated cheddar cheese", "carrots, thinly chopped"]
cleaner_list = []
def RemoveBannedWords(ing):
pattern = re.compile("\\b(grated|zested|thinly|chopped)\\W", re.I)
return pattern.sub("", ing)
for ing in dirtylist:
cleaner_ing = RemoveBannedWords(ing)
cleaner_list.append(cleaner_ing)
print(cleaner_list)
这将返回:
['lemons zested', 'cheddar cheese', 'carrots, chopped']
我也尝试过以下方法:
import re
dirtylist = ["lemons zested", "grated cheddar cheese", "carrots, thinly chopped"]
cleaner_list = []
bannedWord = ['grated', 'zested', 'thinly', 'chopped']
re_banned_words = re.compile(r"\b(" + "|".join(bannedWord) + ")\\W", re.I)
def remove_words(ing):
global re_banned_words
return re_banned_words.sub("", ing)
for ing in dirtylist:
cleaner_ing = remove_words(ing)
cleaner_list.append(cleaner_ing)
print(cleaner_list)
这将返回:
['lemons zested', 'cheddar cheese', 'carrots, chopped']
我有点迷失方向,不确定哪里出错了。非常感谢任何帮助。
","
是被禁止的词? - Daniel Hao