如何在Python中检查子集

122 阅读3分钟

python中的集合是一种数据结构,它包含唯一的不可变的对象。在这篇文章中,我们将讨论什么是集合的子集,以及我们如何在python中检查子集。

什么是子集?

一个集合的子集是包含该集合的部分或全部元素的另一个集合。换句话说,如果我们有一个集合A和集合B,并且集合B的每个元素都属于集合A,那么集合B就被称为集合A的一个子集。

让我们考虑一个例子,我们有三个集合A、B和C,如下所示。

A={1,2,3,4,5,6,,7,8}

B={2,4,6,8}

C={0,1,2,3,4}

在这里,你可以看到,集合B中的所有元素都在集合A中,因此,集合B是集合A的一个子集。另一方面,集合C中的所有元素都不属于集合A,因此,集合C不是集合A的一个子集。

你可以看到,一个子集的元素总是少于或等于原始集合。空集也被认为是任何给定集合的一个子集。现在,让我们描述一下在Python中检查子集的一步步算法。

如何在Python中检查子集?

考虑到我们有两个集合A和B。现在,我们必须检查集合B是否是集合A的子集。为此,我们将遍历集合B的所有元素,检查它们是否存在于集合A中。如果在集合B中存在一个不属于集合A的元素,我们将说集合B不是集合A的子集,否则,集合B将是集合A的子集。

为了在 Python 中实现这种方法,我们将使用一个 for 循环和一个标志变量isSubset 。我们将isSubset 变量初始化为 True,表示集合 B 是集合 A 的子集。我们这样做是为了确保空集合 B 也被认为是 A 的子集。在遍历集合 B 中的元素时,我们将检查该元素是否存在于集合 A 中。

isSubset 如果我们发现任何不在集合A中的元素,我们将把False ,表明集合B不是集合A的一个子集。

如果我们在集合B中没有找到任何不属于集合A的元素,那么isSubset 变量将包含数值True ,表明集合B是集合A的一个子集。整个检查子集的逻辑可以用Python实现,如下所示。

def checkSubset(set1, set2):
    isSubset = True
    for element in set1:
        if element not in set2:
            isSubset = False
            break
    return isSubset


A = {1, 2, 3, 4, 5, 6, 7, 8}
B = {2, 4, 6, 8}
C = {0, 1, 2, 3, 4}
print("Set {} is: {}".format("A", A))
print("Set {} is: {}".format("B", B))
print("Set {} is: {}".format("C", C))
print("Set B is subset of A :", checkSubset(B, A))
print("Set C is subset of A :", checkSubset(C, A))
print("Set B is subset of C :", checkSubset(B, C))

输出。

Set A is: {1, 2, 3, 4, 5, 6, 7, 8}
Set B is: {8, 2, 4, 6}
Set C is: {0, 1, 2, 3, 4}
Set B is subset of A : True
Set C is subset of A : False
Set B is subset of C : False

使用issubset()方法检查子集

我们还可以使用 issubset() 方法来检查Python中的子集。 issubset() 方法,当对一个集合A调用时,接受一个集合B作为输入参数,如果集合A是B的一个子集,则返回True 。否则,返回False

你可以使用 issubset() 方法来检查python中的子集,方法如下。

A = {1, 2, 3, 4, 5, 6, 7, 8}
B = {2, 4, 6, 8}
C = {0, 1, 2, 3, 4}
print("Set {} is: {}".format("A", A))
print("Set {} is: {}".format("B", B))
print("Set {} is: {}".format("C", C))
print("Set B is subset of A :", B.issubset(A))
print("Set C is subset of A :", C.issubset(A))
print("Set B is subset of C :", B.issubset(C))

输出。

Set A is: {1, 2, 3, 4, 5, 6, 7, 8}
Set B is: {8, 2, 4, 6}
Set C is: {0, 1, 2, 3, 4}
Set B is subset of A : True
Set C is subset of A : False
Set B is subset of C : False

结论

在这篇文章中,我们已经讨论了在python中检查子集的方法。