Python 如何从列表中删除特定单词?

Python 如何从列表中删除特定单词?,python,Python,我必须列出不同的单词列表,其中一个列表(stopwords)包含一个应该从另一个列表(kafka)中排除的单词列表 我试过: kafka.discard (stop) # this only works with sets and I do not want to transform my list into a set 是否有其他方法将stop中的单词从其他列表中排除 我正在使用python 3.4.0从kafka中删除stopwords列表中的每个单词的一种方法是: for word in

我必须列出不同的单词列表,其中一个列表(stopwords)包含一个应该从另一个列表(kafka)中排除的单词列表

我试过:

kafka.discard (stop) # this only works with sets and I do not want to transform my list into a set
是否有其他方法将stop中的单词从其他列表中排除


我正在使用python 3.4.0从
kafka
中删除
stopwords
列表中的每个单词的一种方法是:

for word in stopwords:
    while word in kafka:
        kafka.remove(word)
您可以尝试以下方法:

stopwords_set = set(stopwords)

kafka = [word for word in kafka if word not in stopwords_set]

既然您说过不想使用集合(为什么?),您可以使用列表理解:

kafka[:] = [x for x in kafka if x not in stop]

编辑:请注意
切片[:]
,此方法更类似于
的行为。丢弃()
,因为您的收藏的标识将被保留。

我相信这将只删除卡夫卡中word的一个副本,而不是全部。您是对的,这不考虑重复。通过将
if
更改为
while
,这很容易解决,因此我不确定这是否值得否决。这个解决方案所做的其他人所不做的是允许突变发生,这听起来像是OP所寻找的。