[英]List Comprehension for items in list
列出理解以检查是否存在任何项目。
我有一些文字,想检查一些关键词。 如果它包含任何关键字,它应该返回我的句子。
一个例子:
text = [t for t in string.split('. ')
if 'drink' in t or 'eat' in t
or 'sleep' in t]
这可行。 但是,我正在考虑是否有更好的方法,因为关键字列表可能会增加。
我尝试将关键字放在列表中,但在此列表理解中不起作用。 或使用(如果有)
pattern = ['drink', 'eat', 'sleep']
[t for t in string.split('. ') if any (l in pattern for l in t)]
您几乎在那里:
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)
您对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)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.