我正在尝试搜索一组字符串(句子),并检查它们是否包含特定的子字符串集。为此,我使用Python的“any”函数。
如果您想象我的列表非常大,那么我发现在两个“any”语句上经过的时间相当长。我大约需要2秒钟来处理这样的“any”查询。您有任何关于为什么会花费这么长时间的想法,并且您知道如何使代码更快的方法吗?
谢谢。
sentences = ["I am in London tonight",
"I am in San Fran tomorrow",
"I am in Paris next Wednesday"]
# Imagine the following lists to contain 1000's of strings
listOfPlaces = ["london", "paris", "san fran"]
listOfTimePhrases = ["tonight", "tomorrow", "week", "monday", "wednesday", "month"]
start = time.time()
sntceIdxofPlaces = [pos for pos, sent in enumerate(sentences) if any(x in sent for x in listOfPlaces)]
sntceIdxofTimes = [pos for pos, sent in enumerate(sentences) if any(x in pos for x in listOfTimePhrases)]
end = time.time()
print(end-start)
如果您想象我的列表非常大,那么我发现在两个“any”语句上经过的时间相当长。我大约需要2秒钟来处理这样的“any”查询。您有任何关于为什么会花费这么长时间的想法,并且您知道如何使代码更快的方法吗?
谢谢。
sent
的内容。 - Moses Koledoye