在列表实施改进中查找列表

时间:2019-03-20 14:02:08

标签: python python-3.x list performance list-comparison

当前,我正在处理非常大的数据,这种方法耗时的分析部分是这种方法:

def findall_seq_in_seq(subseq, seq):
    indexes = []
    len_subseq = len(subseq)
    for i in range(len(seq) - len_subseq + 1):
        if seq[i:i + len_subseq] == subseq:
            indexes.append((i, i + len_subseq))
    return indexes

seq_pairs = [
    ([1,2,3], [0,1,2,3]),
    (["running"], ["I", "am", "running"]),
    (["house"], ["A", "small", "house", "is", "better", "than", "no", "house"]),
    (["nothing"], ["You", "will", "not", "find", "it", "here"]),
]

for sub, seq in seq_pairs:
    print(findall_seq_in_seq(sub, seq))

此方法采用一个列表序列和一个较小的列表子序列,并返回在列表中出现的子序列的索引。

我主要将其用于字符串比较,并且需要索引才能在其他地方进行查找。

可悲的是,我不知道如何改进代码。我认为正则表达式或字符串比较不会比列表比较好,但也许有人在这里有更好的主意? 我真的很感谢您的帮助!

0 个答案:

没有答案