我有一个列表 input
:
[1, 2, 4, 3, 5, 7, 5, 3, 8, 3, 8, 5, 8, 5, 9, 5, 7, 5, 7, 4, 9, 7, 5, 7, 4, 7, 4, 7, 8, 9, 7, 5, 7, 5, 4, 9, 3, 4, 8, 4, 8, 5, 3, 5, 4, 7, 3, 7, 3, 1, 2, 7, 1, 7, 2, 1]
我需要检查 lookup_list
[1,2,3,4,5,7,8,9,5,4,3,2,1]
的元素是否以相同的顺序在另一个列表中以分散的方式存在。
下面的内容将说明我的意思:
[1, 2, 4, 3, 5, 7, 5, 3, 8, 3, 8, 5, 8, 5, 9, 5, 7, 5, 7, 4, 9, 7, 5, 7, 4, 7, 4, 7, 8, 9, 7, 5, 7, 5, 4, 9, 3, 4, 8, 4, 8, 5, 3, 5, 4, 7, 3, 7, 3, 1, 2, 7, 1, 7, 2, 1]
加粗的数字是 lookup_list
中的数字,它们在 input
列表中的顺序相同,但也有其他无关项在它们之间。
有没有办法可以检查这个问题?
这是我尝试的方法:
count = 0
a = 0
indices = []
for item in list:
idx = -1
if count < len(input_list):
idx = list.index(input_list[count])
if idx != -1:
a = a +len(list[:idx])
list = list[idx:]
indices.append(a + idx)
count = count +1
print(indices)
但是它给了我以下结果:
[0, 2, 5, 35, 25, 24, 33, 30, 33, 37, 38, 64, 54]
问题在于,此方法未维护
lookup_list
的顺序。