我有一个大小为3的元组和另一个大小为2的元组列表。 在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.
到目前为止,我已经能够使用Python itertools.combinations()
但是我无法检查第二部分。
我使用了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
即使我的Inp中存在所有大小为“ n-1”的集合,该函数也会返回空列表[]。