[英]Find indexes of sequence in list in python
我很新,我希望它不是太明显,但我似乎无法找到以下问题的简短而准确的答案。
我有两个清单:
a = [2,3,5,2,5,6,7,2]
b = [2,5,6]
我想找到第二个列表( b
)的所有索引都在第一个列表( a
)中,以便我得到这样的东西:
a中的b的索引: 3, 4, 5
或b = a[3:6]
列表理解:
>>> [(i, i+len(b)) for i in range(len(a)) if a[i:i+len(b)] == b]
[(3, 6)]
或者使用for循环:
>>> indexes = []
>>> for i in range(len(a)):
... if a[i:i+len(b)] == b:
... indexes.append((i, i+len(b)))
...
>>> indexes
[(3, 6)]
这应该按照你的要求做:
a = [2,3,5,2,5,6,7,2]
b = [2,5,6]
for i in range(len(a)):
if a[i] in b:
print i
当然你应该根据自己的喜好格式化print语句。 或者不打印并将结果保存在另一个列表中。
祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.