У меня есть два списка
list1 = ['a', 'b', 'c', 'd']
list2 = ['e', 'f', 'g', 'h']
Ранее я знал, что некоторые из этих элементов связаны через другой список
ref_list = [
['d', 'f'], ['a', 'e'], ['b', 'g'], ['c', 'f'], ['a', 'g'],
['a', 'f'], ['b', 'e'], ['b', 'f'], ['c', 'e'], ['c', 'g']
]
Я хотел бы быстро определить две группы из list1
и list2
, которые имеют все возможные пары [list1 element, list2 element]
в ref_list
.
В этом случае решение будет
[['a', 'b', 'c'], ['e', 'f', 'g']]
Я могу придумать несколько способов сделать это для такихнебольшие списки, но нужна помощь, если list1
, list2
и ref_list
имеют тысячи элементов в каждом.