“ issubset”功能,用于检查元组是否是一组元组的子集

时间:2019-06-07 19:26:10

标签: python tuples subset

我有一个大小为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()

来生成大小= 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

即使我的Inp中存在所有大小为“ n-1”的集合,该函数也会返回空列表[]。

0 个答案:

没有答案