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)
谢谢
您需要将每个短语拆分为单词,并在过滤掉单词后将单词重新加入短语中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)