Вы можете сделать следующее:
lst1 =[0,1,1,1,0]
lst2 =[0,0,1,1,0]
assert len(lst1) == len(lst2)
idx = [i for i in range(len(lst1)) if lst1[i] == 1 and lst2[i] == 1]
print(idx)
Другое решение, использующее numpy
:
import numpy as np
lst1 =[0,1,1,1,0]
lst2 =[0,0,1,1,0]
assert len(lst1) == len(lst2)
lst1_ = np.array(lst1)
lst2_ = np.array(lst2)
idx_ = np.intersect1d(np.where(lst1_ == 1)[0],np.where(lst2_ == 1)[0])
print(list(idx_))
Другой альтернативой является переключение следующей строки:
idx_ = np.intersect1d(np.where(lst1_ == 1)[0],np.where(lst2_ == 1)[0])
Автор:
idx_ = np.where((lst1_==1)&(lst2_==1))[0]
Как указано @yatu, следует использовать побитовые операции.