Как найти индекс совпадающих элементов в списке, используя Python? - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть два списка:

l1 = [1, 46, 8, 9, 4, 76, 797, 342, 3, 5, 67, 42, 87]
l2 = [42, 34, 5, 78, 8, 9, 4]

Я хочу узнать индекс l1, у которых есть совпадения в l2.

Может кто-нибудь мне помочь?

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Проблема с перечислением и установкой заключается в том, что он не сохраняет порядок, вот код, который делает это:

print([l1.index(k) for k in l2 if k in l1])
0 голосов
/ 13 апреля 2020

Наивный метод:

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)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...