检查列表是否是维护秩序的列表的一部分,并找到位置



我需要查找;匹配点";其中list";a";大于列表";b";。到目前为止,我已经找到了这个早期的帖子:检查一个列表是否是另一个列表的一部分,同时保留列表序列

这帮助很大。但我现在需要,只要清单合适。

a = [3, 4, 1, 2, 4, 1, 5]
b = [4, 1, 2]

"b";"适合";a";但是我希望CCD_ 2作为第一匹配点而不是CCD_

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

a = [3, 4, 1, 2, 4, 1, 5]
b = [4, 1, 2]
starting_point = next((a[i] for i in range(len(a)) if b == a[i:i + len(b)]), -1)
print(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])

输出

position 1
starting point 4

注意变化,现在是i而不是a[i]

最新更新