gpt4 book ai didi

python - 为什么我在 Python 中使用任何方法都这么慢?

转载 作者:太空狗 更新时间:2023-10-30 02:17:03 25 4
gpt4 key购买 nike

我正在尝试搜索字符串(句子)列表并检查它们是否包含一组特定的子字符串。为此,我使用了 Python 的“任意”函数

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 秒。您知道为什么要花这么长时间吗?您知道有什么方法可以使代码更快吗?

谢谢

最佳答案

不要枚举你的句子两次。你可以用一个循环检查你的句子。

sntceIdxofPlaces = []
sntceIdxofTimes = []
for pos, sent in enumerate(sentences):
if any(x in sent for x in listOfPlaces):
sntceIdxofPlaces.append(pos)
if any(x in sent for x in listOfTimePhrases):
sntceIdxofTimes.append(pos)

关于python - 为什么我在 Python 中使用任何方法都这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41023578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com