2014-04-01 45 views
1

我必須列出不同的單詞列表,一個列表(停用詞)包含應該從另一個列表(kafka)中排除的單詞列表。如何從列表中刪除特定單詞?

我想:

kafka.discard (stop) # this only works with sets and I do not want to transform my list into a set 

有另一種方式從其他列表中排除在停止的話?

我使用Python 3.4.0

回答

3

既然你說你不想和集合一起工作(爲什麼?),你可以使用列表理解:

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

編輯:注意slice[:],這種方法更像在你的收藏者的身份被保留.discard()行爲。

0

的一種方式,從kafka刪除您stopwords列表中的每一個字是:

for word in stopwords: 
    while word in kafka: 
     kafka.remove(word) 
+0

我相信這隻會刪除kafka中的一個單詞而不是所有的單詞。 –

+0

你說得對,這不包含重複。這很容易通過將'if'更改爲'while'來解決,所以我不確定這是否值得降級。這個解決方案所做的,其他人不允許的就是允許就地變異,這聽起來就像是OP尋找的東西。 – jdotjdot

+0

好吧,我取消了我的downvote ~~ –

1

你可以試試這個:

stopwords_set = set(stopwords) 

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