Найти индексы общих элементов в двух списках Python - PullRequest
0 голосов
/ 04 июля 2018

У меня есть два списка в python list_A и list_B, и я хочу найти общий элемент, которым они делятся. Мой код для этого следующий:

both = []
for i in list_A:
    for j in list_B:
        if i == j:
            both.append(i)

Общий список в конце содержит общие элементы. Однако я хочу также вернуть индексы этих элементов в первых двух списках. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 04 июля 2018

В python рекомендуется, чтобы вы максимально избегали использования циклов for. Вы можете эффективно найти общие элементы в двух списках, используя python set следующим образом

both = set(list_A).intersection(list_B)

Затем вы можете найти индексы, используя встроенный index метод

indices_A = [list_A.index(x) for x in both]
indices_B = [list_B.index(x) for x in both]
0 голосов
/ 04 июля 2018

Вместо того, чтобы перебирать список, обращайтесь к элементам по индексу:

both = []
for i in range(len(list_A)):
    for j in range(len(list_B)):
        if list_A[i] == list_B[j]:
            both.append((i,j))

Здесь i и j будут принимать целочисленные значения, и вы можете проверить значения в list_A и list_B по индексу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...