本篇我们介绍不相交集合的概念,以及如何使 isdisjoint() 方法判断两个集合是否不相交。
如果两个集合没有任何共同的元素,它们就是不相交集(disjoint set)。也就是说,两个不相交的集合的交集为空集。
例如,集合 {1,3,5} 和 {2,4,6} 不相交,因为它们没有共同元素。
以下文氏图解释了不相交集的含义:
在 Python 中,使用集合的 isdisjoint() 方法判断两个集合是否为不相交集:
set_a.isdisjoint(set_b)
如果集合 set_a 和 set_b 不相交,isdisjoint() 方法返回 True;否则,返回 False。
isdisjoint() 方法支持任何类型的可遍历对象,而不仅仅是集合。如果我们将列表、元组或者字典传递给该方法,它会将参数转换为集合之后再进行判断。
以下示例使用 isdisjoint() 方法判断集合 odd_numbers 和集合 even_numbers 是否为不相交集:
odd_numbers = {1, 3, 5} even_numbers = {2, 4, 6} result = odd_numbers.isdisjoint(even_numbers) print(result)
输出结果如下:
True
集合 odd_numbers 和 even_numbers 没有共同的元素,因此 isdisjoint() 方法返回了 True。
以下示例使用 isdisjoint() 方法判断集合 letters 和集合 alphanumerics 是否为不想交集:
letters = {'A', 'B', 'C'} alphanumerics = {'A', 1, 2} result = letters.isdisjoint(alphanumerics) print(result)
输出结果如下:
False
以上示例返回了 False,因为字母“A” 同时属于集合 alphanumerics 以及 letters。
以下示例使用 isdisjoint() 方法判断集合 letters 和数组 [1, 2, 3] 是否为不相交集:
letters = {'A', 'B', 'C'} result = letters.isdisjoint([1, 2, 3]) print(result)
输出结果如下:
True