Python 检查列表是否是保持顺序的列表的一部分,并找到位置

Python 检查列表是否是保持顺序的列表的一部分,并找到位置,python,list,match,Python,List,Match,我需要寻找两个列表的“匹配点”,其中列表“a”大于列表“b”。 到目前为止,我发现了这篇早期的帖子: 这很有帮助。但我现在需要,在合适的地方 a = [3, 4, 1, 2, 4, 1, 5] b = [4, 1, 2] “b”适合于“a”,但我希望将a[1]作为第一个匹配点,而不是TRUE值,您可以使用它来获取第一个匹配点: 输出 4 position 1 starting point 4 更新 如果同时需要索引和索引处的值,请返回索引而不是值,例如: position = next(

我需要寻找两个列表的“匹配点”,其中列表“a”大于列表“b”。 到目前为止,我发现了这篇早期的帖子:

这很有帮助。但我现在需要,在合适的地方

a = [3, 4, 1, 2, 4, 1, 5]
b = [4, 1, 2]
“b”适合于“a”,但我希望将
a[1]
作为第一个匹配点,而不是
TRUE
值,您可以使用它来获取第一个匹配点:

输出

4
position 1
starting point 4
更新

如果同时需要索引和索引处的值,请返回索引而不是值,例如:

position = next((i for i in range(len(a)) if b == a[i:i + len(b)]), -1)

print("position", position)
print("starting point", a[position])
输出

4
position 1
starting point 4
注意更改,现在是
i
,而不是
a[i]

,您可以使用它获取第一个匹配点:

输出

4
position 1
starting point 4
更新

如果同时需要索引和索引处的值,请返回索引而不是值,例如:

position = next((i for i in range(len(a)) if b == a[i:i + len(b)]), -1)

print("position", position)
print("starting point", a[position])
输出

4
position 1
starting point 4

请注意更改,现在是
i
而不是
a[i]

谢谢您的快速反馈!如果我正确理解了输出
起始点=4
a
中的第一个元素,即
4
?如果添加几行以获得
a
中的位置:
a=[3,4,1,2,4,1,5,4,1,2]b=[4,1,2]起始点=下一个((a[I]对于范围内的I(len(a)),如果b==a[I:I+len(b)),位置=a(起始点)打印(“起始点=”,起始点)打印(“位置=a[”,位置,”)”
输出:
起始点=4位置=a[1]
@kaistreder如果你想让职位返回i而不是[i],我在问题的更新中添加了。感谢你的快速反馈!如果我正确理解了输出
起始点=4
a
中的第一个元素,即
4
?如果在
a
中添加了几行来获得职位:
a=[3,4,1,2,4,1,5,4,1,2]b=[4,1,2]起始点=下一个((a[i]表示范围内的i(len(a)),如果b==a[i:i+len(b)],-1)位置=a.索引(起始点)打印(“起始点=”,起始点)打印(“位置=a[”,位置])
Output:
start\u point=4 position=a[1]
@kaistreder如果你想要这个职位,只需返回i而不是a[i],我在更新问题时补充道。