Рассмотрим следующую проблему: я хочу сохранить элементы списка list1, который принадлежит list2.Так что я могу сделать что-то вроде этого:
filtered_list = [w for w in list1 if w in list2]
Мне нужно повторить эту же процедуру для разных примеров list1 (около 20000 разных примеров) и «постоянного» (замороженного) list2.
Как я могу ускорить процесс?
Мне также известны следующие свойства:
1) list1 содержит повторяющиеся элементы, и он не отсортирован и имеет около 10000(десять тысяч) элементов.
2) list2 - это гигантский отсортированный список (около 200000 - двести тысяч) записей в Python), и каждый элемент уникален.
Первое, что приходит мне в голову, это то, что, возможно, я могу использовать своего рода бинарный поиск.Тем не менее, есть ли способ сделать это в Python?
Кроме того, я не возражаю, если Filter_list имеет такой же порядок элементов списка list1.Так что, возможно, я могу проверить только неповторенную версию list1 и после удаления элементов в list1, которые не принадлежат списку 2, я могу вернуть повторяющиеся элементы.
Есть ли быстрый способ сделать это в Python3