从python中的列表中删除单词

use*_*990 0 python list-comprehension

我有一个列表'abc'(字符串),我试图从列表'abc'和abc中的所有数字中删除列表'stop'中的一些单词.

abc=[ 'issues in performance 421',
 'how are you doing',
 'hey my name is abc, 143 what is your name',
 'attention pleased',
 'compliance installed 234']
stop=['attention', 'installed']
Run Code Online (Sandbox Code Playgroud)

我正在使用列表推导删除它,但下面的代码无法删除该单词.

new_word=[word for word in abc if word not in stop ]
Run Code Online (Sandbox Code Playgroud)

结果:(注意词仍然存在.)

['issues in performance',
 'how are you doing',
 'hey my name is abc, what is your name',
 'attention pleased',
 'compliance installed']
Run Code Online (Sandbox Code Playgroud)

期望的输出:

 ['issues in performance',
     'how are you doing',
     'hey my name is abc, what is your name',
     'pleased',
     'compliance']
Run Code Online (Sandbox Code Playgroud)

谢谢

blh*_*ing 6

您需要将每个短语拆分为单词,并在过滤掉单词后将单词重新加入短语中stop.

[' '.join(w for w in p.split() if w not in stop) for p in abc]
Run Code Online (Sandbox Code Playgroud)

这输出:

['issues in performance', 'how are you doing', 'hey my name is abc, what is your name', 'pleased', 'compliance installed']
Run Code Online (Sandbox Code Playgroud)