我有一个名为words
的列表,其中包含可能是大写或小写的单词,或者它们的某种组合。然后我有另一个名为stopwords
的列表,其中只包含小写字。现在,我想查看stopwords
中的每个单词,并以不区分大小写的方式从words
中删除该单词的所有实例,但我不知道如何执行此操作。建议?
示例:
words = ['This', 'is', 'a', 'test', 'string']
stopwords = ['this', 'test']
for stopword in stopwords:
if stopword in words:
words.remove(stopword);
print words
显示的结果是:['This', 'is', 'a', 'string']
正确的回报应该是:['is', 'a', 'string']
答案 0 :(得分:9)
让你的单词小写,这样你就不必担心套管:
words = ['This', 'is', 'a', 'test', 'string']
stopwords = {'this', 'test'}
print([i for i in words if i.lower() not in stopwords])
输出:
['is', 'a', 'string']
另外需要注意的是,根据@ cricket_007(并感谢@chepner进行更正)评论,将停用词设置为一组将使其更具性能。请注意上面的停用词的更改,使其成为集合而不是列表。