Вы уже получили ответы.Однако ради интереса я придумал следующий метод.Я не тестировал все подходы, перечисленные здесь.Это может быть весело, чтобы сделать это.Это интересный вопрос, и его можно изучить подробнее.Тем не менее, просто ради этого я представляю решение, которое я сделал.
import numpy as np
l = np.array(List1) * 2
print(l)
## array([46, 90, 12, 14, 68])
print(set(l) & set(List2))
## {68, 46, 14}
l2 = set(l) & set(List2)
print([List1[list(np.nonzero(l == i))[0][0]] for i in l if i in l2])
## [23, 7, 34]
Он использует широковещание numpy вместе с быстрой операцией пересечения множества Python.Это может быть полезно, если два списка очень велики.