我正在尝试搜索字符串(句子)列表并检查它们是否包含一组特定的子字符串.要做到这一点,我正在使用
Python的’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)
如果您认为我的列表非常大,我发现我在两个“任何”语句上所花费的时间相当长.对于两个这样的“任何”查询,我大约需要2秒.你知道为什么花了这么长时间,你知道有什么办法让代码更快吗?
谢谢