Метод пересечения python только говорит мне, что элемент списка из списка B встречается в списке A, но не так часто.
Правильно, но вы можете основываться на этом принципе.Выполните итерацию по пересечению, используя словарь:
from collections import Counter
A = [1, 2, 2, 2, 3, 3, 4, 4, 4, 5]
B = [2, 3, 5, 6]
c = Counter(A)
res = {k: c[k] for k in c.keys() & B}
# {2: 3, 3: 2, 5: 1}
Представление ключей словаря, то есть dict.keys
не является строго set
, но имеет set
-подобные свойства , например, &
(пересечение):
Представления ключей похожи на наборы, поскольку их записи уникальны и доступны для хэширования.