我有两个列表和一个句子列表,如下所示。
list1 = ['data mining', 'data sources', 'data']
list2 = ['neural networks', 'deep learning', 'machine learning']
sentences = ["mining data using neural networks has become a trend", "data mining is easy with python", "machine learning is my favorite", "data mining and machine learning are awesome", "data sources and data can been used for deep learning purposes", "data, deep learning and neural networks"]
我希望挑选那些同时包括list1
和list2
元素的句子。即输出应为:
["mining data using neural networks has become a trend", "data mining and machine learning are awesome", "data sources and data can been used for deep learning purposes", "data, deep learning and neural networks"]
我的当前代码如下。
for sentence in sentences:
for terms in list1:
for words in list2:
if terms in sentence:
if words in sentence:
print(sentence)
然而,该代码的时间复杂度为O(n^3),效率不高。有没有更有效率的在Python中实现的方法?
如有需要,我很乐意提供更多细节。
'|'.join(list1)
(为了清晰起见省略转义)创建的正则表达式模式匹配,那么您就知道该句子至少包含list1
中的一个项目。然后对list2
做同样的操作。 - Michael Butscher