搜索带有字符串列表的子字符串的优化

时间:2018-09-04 19:31:01

标签: python-3.x optimization

参数

目前,我有这样的双端队列,该双端队列不断地附加到:

choices = [
    ["text approximately 500+ chars long", 1] #second part is a 1 or a 2
]

在文本中输入电子邮件链中的最新电子邮件,数字确定如何处理。任何后续电子邮件(链中较低的位置或链中较高的位置)都应应用相同的操作。

我使用双端队列是因为我假设同一链中的电子邮件是在大约同一时间发送的,因此我可以使用比列表更快的双端队列appendleft来受益。

当前要实现我的目标,我正在这样做:

for choice in choices:
    if current_email in choice[0]: #check for lower level emails
         incident_type = choice[1]
         break
    elif choice[0] in current_email: #check for upper level emails
         incident_type = choice[1]
         break

我认为我当前的搜索方式是O(nkm)表示n(current_email的长度)和k(choices的长度)和m(电子邮件的长度,以k为单位) ),因此使其成为一种非常次优的处理方式。一旦选择达到大约50个,则完成每个完整的选择搜索大约需要5-10秒。是否有更好的方法与其他模块或方法一起使用?

谢谢。

0 个答案:

没有答案