У меня есть два списка:
l1 = [1, 46, 8, 9, 4, 76, 797, 342, 3, 5, 67, 42, 87] l2 = [42, 34, 5, 78, 8, 9, 4]
Я хочу узнать индекс l1, у которых есть совпадения в l2.
l1
l2
Может кто-нибудь мне помочь?
Проблема с перечислением и установкой заключается в том, что он не сохраняет порядок, вот код, который делает это:
print([l1.index(k) for k in l2 if k in l1])
Наивный метод:
for i in range(len(l1)): try: if l1[i] in l2: print(i) except ValueError: pass
Вы также можете использовать oneliner, который более эффективен, потому что поиск в наборе выполняется за постоянное время, кредит @Matthias для указания этого:
[i for i, v in enumerate(l1) if v in set(l2)]