在python中,集合是用来存储唯一的不可变对象的容器对象。在这篇文章中,我们将讨论python中的不相交集合。我们还将讨论不同的方法来检查python中的不相交集。
什么是不相交集?
如果两个集合没有任何共同的元素,那么这两个集合就被称为是不相交的。如果两个给定的集合之间存在任何共同元素,它们就不是不相交的集合。
假设我们有如下所示的集合A、集合B和集合C。
A = {1, 2, 3, 4, 5, 6, 7, 8}
B = {2, 4, 6, 8, 10, 12}
C = {10, 20, 30, 40, 50}
在这里,你可以看到集合A和集合B有一些共同的元素,即2、4、6和8。因此,它们不是不相交的集合。另一方面,集合A和集合C没有共同元素。因此,集合A和集合C将被称为不相交集合。
如何在Python中检查不相交集?
要检查不相交集,我们只需要检查在给定的集合中是否存在任何共同元素。如果这两个集合有共同的元素,那么这两个集合就不是不相交的集合。否则,它们将被视为不相交的集合。
为了实现这个逻辑,我们将声明一个变量isDisjoint ,并将其初始化为True ,假设两个集合都是不相交的集合。之后,我们将使用for循环遍历其中一个输入集。在遍历过程中,我们将检查集合中的每个元素是否存在于另一个集合中。False 如果我们发现第一个集合中的任何元素属于第二个集合,我们将给isDisjoint 变量赋值,表示这些集合不是不相交的集合。
如果输入集之间没有共同的元素,那么在执行for循环后,isDisjoint 变量将保持为True 。因此,表示这些集合是不相交的集合。
def checkDisjoint(set1, set2):
isDisjoint = True
for element in set1:
if element in set2:
isDisjoint = False
break
return isDisjoint
A = {1, 2, 3, 4, 5, 6, 7, 8}
B = {2, 4, 6, 8, 10, 12}
C = {10, 20, 30, 40, 50}
print("Set {} is: {}".format("A", A))
print("Set {} is: {}".format("B", B))
print("Set {} is: {}".format("C", C))
print("Set A and B are disjoint:", checkDisjoint(A, B))
print("Set A and C are disjoint:", checkDisjoint(A, C))
print("Set B and C are disjoint:", checkDisjoint(B, C))
输出。
Set A is: {1, 2, 3, 4, 5, 6, 7, 8}
Set B is: {2, 4, 6, 8, 10, 12}
Set C is: {40, 10, 50, 20, 30}
Set A and B are disjoint: False
Set A and C are disjoint: True
Set B and C are disjoint: False
使用isdisjoint()方法检查不相交的集合
与上面讨论的方法不同,我们可以使用isdisjoint() 方法来检查python中的不相交集合。isdisjoint() 方法,当在一个集合上调用时,将另一个集合作为一个输入参数。执行后,如果这两个集合是不相交的集合,则返回True 。否则,它将返回False 。你可以在下面的例子中观察到这一点。
A = {1, 2, 3, 4, 5, 6, 7, 8}
B = {2, 4, 6, 8, 10, 12}
C = {10, 20, 30, 40, 50}
print("Set {} is: {}".format("A", A))
print("Set {} is: {}".format("B", B))
print("Set {} is: {}".format("C", C))
print("Set A and B are disjoint:", A.isdisjoint(B))
print("Set A and C are disjoint:", A.isdisjoint(C))
print("Set B and C are disjoint:", B.isdisjoint(C))
输出。
Set A is: {1, 2, 3, 4, 5, 6, 7, 8}
Set B is: {2, 4, 6, 8, 10, 12}
Set C is: {40, 10, 50, 20, 30}
Set A and B are disjoint: False
Set A and C are disjoint: True
Set B and C are disjoint: False
结论
在这篇文章中,我们讨论了两种在python中检查不相交集合的方法。