У меня есть кортеж размера 3 и другой список кортежей размера два.В Python я хочу проверить, присутствуют ли все подмножества кортежа 3-го размера в списке кортежей или нет
Eg:
T3 -> Tuple of size 3: {A, B, C}
Inp -> List of Tuples of Size 2 given as input: [(A,B), (A,C), (B,C),
(C,D)]
I want to first get all possible subsets of T3 i.e. (A,B), (A,C), (B,C)
and if all of them are part of Inp then return T3, otherwise do nothing.
До сих пор мне удавалось генерировать возможные подмножества размера = 2, используя Python itertools.combinations()
но я не смог проверить 2-ю часть.
Я использовал функцию issubset (), но она не возвращает правильный ответ.
Вотмой код:
#para gets the tuple T3 or a list of tuples, all of size = n
def subset_from_kv(para):
sol = []
flag = True
tt = set(para)
for j in tt:
for i in set(itertools.combinations(j, n-1)):
if not(set(i).issubset(inp)): #inp is a list of tuples of size n-1
flag = False
if flag is True:
sol.append(j)
return sol
Даже когда все наборы размера "n-1" присутствуют в моем Inp, функция возвращает пустой список [].