Python的集合(set)和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素. 集合对象还支持union(联合), intersection(交), difference(差)和sysmmetric difference(对称差集)等数学运算.由于集合是无序的,所以,sets 不支持 索引, 分片, 或其它类序列(sequence-like)的操作。
集合也存在不可变形式,frozenset为固定集合.
#定义一个集合
set1 = {1, 2, 3, 4, 5}
# 或者使用 set 函数
list1 = [6, 7, 7, 8, 8, 9]
set2 = set(list1)
set2.add(10) # 添加新元素
print set2 # set([8, 9, 6, 7]) 去掉重复内容,而且是无序的
set3 = frozenset(list1)
set3.add(10) # 固定集合不能添加元素
### 集合有并集,交集,求差操作
### 并集:intersection() 方法返回一个新集合,包含在两个集合中同时出现的所有元素。
### 交集:union() 方法返回一个新集合,包含在两个 集合中出现的元素。
### 差集:difference() 方法返回的新集合中,包含所有在 集合A出现但未在集合B中的元素。
### symmetric_difference() 方法返回一个新集合,包含所有只在其中一个集合中出现的元素。
# 删除元素
set2.discard(6) # 当元素不存在时,不会引发异常
set2.remove(6) # 与discard的区别在于,如果没有要删除的元素,remove会引发一个异常
set2.pop() # 因为set是无序的,所以pop会随机的从set中删除一个元素