Вы можете использовать списочное понимание для этого:
>>> v= [100,200,300,400,500,600,700,800,900,1000,1100]
>>> x= [67,56,89,21,90,54,38,93,46,17,75]
>>> j= [200,500,600]
>>> [x[i] for i, v_ele in enumerate(v) if v_ele in j]
[56, 90, 54]
Или использовать частичное установить пересечение решение:
>>> [x[v.index(i)] for i in set(v)&set(j)]
[56, 54, 90]
Обратите внимание, что это не поддерживать порядок, так как наборы изначально неупорядочены. Чтобы исправить это, мы можем отсортировать с ключом как x.index
:
>>> sorted([56, 54, 90], key=x.index)
[56, 90, 54]