使用 Methods 和 Builtins 设置操作
我们定义了两组 a 和 b
>>> a = {1, 2, 2, 3, 4}
>>> b = {3, 3, 4, 4, 5}
注意:
{1}会创建一个元素集,但{}会创建一个空的dict。创建空集的正确方法是set()。
路口
a.intersection(b) 返回一个新的集合,其中包含 a 和 b 中的元素
>>> a.intersection(b)
{3, 4}
联合
a.union(b) 返回一个新集合,其中包含 a 和 b 中的元素
>>> a.union(b)
{1, 2, 3, 4, 5}
区别
a.difference(b) 返回一个新集合,其中元素存在于 a 中但不在 b 中
>>> a.difference(b)
{1, 2}
>>> b.difference(a)
{5}
对称差异
a.symmetric_difference(b) 返回一个新的集合,其元素存在于 a 或 b 中,但不存在于两者中
>>> a.symmetric_difference(b)
{1, 2, 5}
>>> b.symmetric_difference(a)
{1, 2, 5}
注意 :a.symmetric_difference(b) == b.symmetric_difference(a)
子集和超集
c.issubset(a) 测试 c 的每个元素是否在 a。
a.issuperset(c) 测试 c 的每个元素是否都在 a。
>>> c = {1, 2}
>>> c.issubset(a)
True
>>> a.issuperset(c)
True
后面的操作具有等效的运算符,如下所示:
| 方法 | 操作者 | 
|---|---|
| a.intersection(b) | a & b | 
| a.union(b) | a | 
| a.difference(b) | a - b | 
| a.symmetric_difference(b) | a ^ b | 
| a.issubset(b) | a <= b | 
| a.issuperset(b) | a >= b | 
不相交的集合
如果 a 中的元素也不在 d 中,则 a 和 d 是不相交的,反之亦然。
>>> d = {5, 6}
>>> a.isdisjoint(b) # {2, 3, 4} are in both sets
False
>>> a.isdisjoint(d)
True
# This is an equivalent check, but less efficient
>>> len(a & d) == 0
True
# This is even less efficient
>>> a & d == set()
True
测试会员资格
内置的 in 关键字搜索出现
>>> 1 in a
True
>>> 6 in a
False
长度
内置的 len() 函数返回集合中的元素数
>>> len(a)
4
>>> len(b)
3