在python中查找列表中的序列索引

use*_*377 4 python list

我很新,我希望它不是太明显,但我似乎无法找到以下问题的简短而准确的答案.

我有两个清单:

a = [2,3,5,2,5,6,7,2]
b = [2,5,6]
Run Code Online (Sandbox Code Playgroud)

我想找到第二个list(b)的所有索引都在第一个list(a)中,这样我得到这样的东西:

a中的b的索引:3, 4, 5b = a[3:6]

Rik*_*ggi 15

列表理解:

>>> [(i, i+len(b)) for i in range(len(a)) if a[i:i+len(b)] == b]
[(3, 6)]
Run Code Online (Sandbox Code Playgroud)

或者使用for循环:

>>> indexes = []
>>> for i in range(len(a)):
...    if a[i:i+len(b)] == b:
...        indexes.append((i, i+len(b)))
... 
>>> indexes
[(3, 6)]
Run Code Online (Sandbox Code Playgroud)