列表中项目的列表理解

时间:2019-05-08 03:06:59

标签: python list-comprehension

列出理解以检查是否存在任何项目。

我有一些文字,想检查一些关键词。如果它包含任何关键字,它应该返回我的句子。

一个例子:


Error: write EPIPE at WriteWrap.afterWrite [as oncomplete] (net.js:799:14)

这有效。但是,我正在考虑是否有更好的方法,因为关键字列表可能会增加。

我尝试将关键字放在列表中,但在此列表理解中不起作用。 或使用

     text = [t for t in string.split('. ') 

     if 'drink' in t or 'eat' in t 

     or 'sleep' in t]

2 个答案:

答案 0 :(得分:1)

您快到了:

pattern = ['drink', 'eat', 'sleep']
[t for t in string.split('. ') if any(word in t for word in pattern)]

关键是检查模式中的每个单词是否在句子中:

any(word in t for word in pattern)

答案 1 :(得分:1)

您对any的使用是向后的。这就是您想要的:

[t for t in string.split('. ') if any(l in t for l in pattern)]

另一种方法是使用正则表达式:

import re

regex = '|'.join(pattern)

[t for t in string.split('. ') if regex.search(t)]