摘要:在本节中,你将学习不相交集合(disjoint sets)以及如何使用 Python 的 isdisjoint()
方法来检查两个集合是否不相交。
Python 不相交集合简介
当两个 集合 没有共同元素时,它们就是不相交的。换句话说,两个不相交集合是指它们的 交集 为空集。
例如,集合 {1,3,5}
和 {2,4,6}
是不相交的,因为它们没有共同元素。
下面的维恩图(Venn diagram)说明了不相交集合:
在 Python 中,你可以使用集合(Set)的 isdisjoint()
方法来检查两个集合是否不相交(即没有共同元素):
set_a.isdisjoint(set_b)
isdisjoint()
方法在 set_a
和 set_b
不相交时返回 True
,否则,它返回 False
。
isdisjoint()
方法也接受任何 可迭代对象(iterable),而不仅仅是集合。
如果你传递一个列表、元组或字典isdisjoint()
方法会在检查之前将其转换为集合。
Python 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
,因为集合 alphanumerics
中的字母 'A'
存在于集合 letters
中。
以下示例将一个列表传递给 isdisjoint()
方法,而不是一个集合:
letters = {'A', 'B', 'C'}
result = letters.isdisjoint([1, 2, 3])
print(result)
输出:
True
总结
如果两个集合没有共同元素,则它们是不相交的。
使用 Python 集合的
isdisjoint()
方法来检查两个集合是否不相交。