Python 集合 (Set)
集合是 Python 中另一种重要的数据类型。它是一个无序且不包含重复元素的集合。集合的主要用途是进行成员资格测试和消除重复条目。
创建集合
集合由大括号 {} 定义,或者使用 set() 构造函数。
注意:创建空集合
你不能使用 {} 来创建一个空集合,因为这会创建一个空字典。要创建一个空集合,你必须使用 set()。
集合的特性
- 无序性: 集合中的元素没有特定的顺序。你不能通过索引来访问集合中的元素(例如
my_set[0]会引发错误)。 - 唯一性: 集合中不能包含重复的元素。这是集合最核心的特性。
- 可变性: 集合本身是可变的,你可以向其中添加或删除元素。
常用集合方法
set.add(elem): 向集合中添加一个元素。set.update(iterable): 用另一个可迭代对象中的所有元素来更新集合。set.remove(elem): 从集合中移除一个元素。如果元素不存在,会引发KeyError。set.discard(elem): 从集合中移除一个元素。如果元素不存在,不会引发错误。set.pop(): 随机移除并返回集合中的一个元素。如果集合为空,会引发KeyError。set.clear(): 清空集合中的所有元素。
示例:
集合运算
集合最强大的功能在于其数学运算,可以用来比较两个集合的关系。
假设我们有两个集合:
-
并集 (Union): 返回一个包含两个集合中所有元素的新集合。
A | BA.union(B)- 结果:
{1, 2, 3, 4, 5, 6}
-
交集 (Intersection): 返回一个只包含两个集合中共有元素的新集合。
A & BA.intersection(B)- 结果:
{3, 4}
-
差集 (Difference): 返回一个包含在第一个集合中,但不在第二个集合中的元素的新集合。
A - B(A 中有,B 中没有)A.difference(B)- 结果:
{1, 2}
-
对称差集 (Symmetric Difference): 返回一个包含所有只在其中一个集合中出现的元素的新集合(即,并集减去交集)。
A ^ BA.symmetric_difference(B)- 结果:
{1, 2, 5, 6}
示例: