如何将句子列表与关键字列表匹配

时间:2018-11-11 09:14:35

标签: python python-3.x list

我想创建一个新列表,该列表与句子列表和关键字列表匹配。

list = ['This sentence contains disclosure.', 'This sentence contains none declared.', 'This sentence contains competing interest.', 'This sentence contains authors declare.']
keywords = ['disclosure ', 'none declared', 'interest']

应该打印出的新列表应该这样

matched_list = ['This sentence contains disclosure.', 'This sentence contains none declared.']

我尝试使用

r = re.compile('.*disclosure')
newlist = list(filter(r.match, list))

但是,我的关键字列表很大,因此不可能在r = re.compile('.*keywords')中全部键入关键字。还有其他方法可以将句子列表与关键字列表匹配。

1 个答案:

答案 0 :(得分:1)

您将必须对照关键字列表检查每个字符串。假设简单的字符串匹配就足够了(不需要正则表达式),请使用列表推导。

window.FirebasePlugin.onNotificationOpen(function(data) {
  console.log(JSON.stringify(data));
  alert("the notification recieved ")
}, function(error) {
  console.error(error);
});

这实际上只是一种简洁的说法:

matched_list = [
    string for string in lst if any(
        keyword in string for keyword in keywords)]

matched_list = [] for string in lst: if any(keyword in string for keyword in keywords): matched_list.append(string) 将短路,为匹配的第一个关键字返回any(如果找不到匹配项,则返回True)。


如果要使用正则表达式,则可以像往常一样预编译模式,然后在循环内调用False

pattern.search