Индексы элементов в списке python кортежей - PullRequest
0 голосов
/ 07 мая 2020

Проблема

Учитывая 2 списка A и B, я хочу получить индексы всех элементов в списке A, которые присутствуют в списке B. Каждый элемент является кортежем.

Я используя списки размером 40 000 элементов или около того.

Пример

Входные данные:

A = [(1,2),(3,4),(5,6),(7,8)]

B = [(1,2),(3,4),(5,6)]

Ожидаемый результат:

[0,1,2]

Попытки решения

Я пробовал два решения:

1) с использованием функции карты

m = map(a.index,b)
list(m)

2) с использованием понимания списка

m = [a.index(item) for item in b if item in a]

Эти методы, похоже, тоже много времени. Есть ли другой способ выполнить sh это?

1 Ответ

0 голосов
/ 02 июля 2020

Ниже будет ваш лучший выбор. Я использую набор (т.е. set (B) ), поскольку поиск указанного c tupple может быть выполнен в O (1) Time Complexity.

m = [index for index, tupple in enumerate(A) if tupple in set(B)]

Надеюсь на это помогает.

Спасибо,

Issei

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