python3之集合(set,frozenset)
一、集合
集合中的元素无序且不可重复
集合是无序的,不记录元素位置或插入顺序,因此,集合不支持索引,切片或其他序列操作
包括
set: 可变的集合类型
frozenset: 不可变的集合类型
定义
set_name = {value1, value2,...} set_name = set(iterable) frozenset_name = {value1, value2,...} frozenset_name = set(iterable) 创建空集合必须使用set()
二、set集合类型和frozenset集合类型共有的操作
len(s) 返回集合元素的个数 x in s 集合中包含给定元素返回 True,否则返回 False x not in s 集合中包含给定元素返回 True,否则返回 False s.isdisjoint(other_s) 集合与other_s没有相同的元素返回 True,否则返回False s.issubset(other_s) 等效于 s <= other_s 集合是other_s的子集返回 True,否则返回 False s < other_s 集合是other_s的真子集返回 True,否则返回 False s.issuperset(other_s) 等效于 s >= other_s 集合是other_s的父集返回 True,否则返回 False s > other_s 集合是other_s的超集返回 True,否则返回 False s.union(other_s) 等效于 s | other_s 返回集合与other_s的并集,不改变原集合 s.intersection(other_s) 等效于 s & other_s 返回集合与other_s的交集,不改变原集合 s.difference(other_s) 等效于 s - other_s 返回集合与other_s元素的差集,不改变原集合 s.symmetric_difference(other_s) 等效于 s ^ other_s 返回两集合的并集减去交集组成的集合,不改变原集合 s.copy() 返回集合的浅拷贝后的集合
三、set集合特有的操作
set.update(other_s) 等效于 set |= other_s 用集合与other_s的并集更新集合,原集合改变 set.intersection_update(other_s) 等效于 set &= other_s 用集合与other_s的交集更新集合,原集合改变 set.difference_update(other_s) 等效于 set -= other_s 用集合与other_s的差集更新集合,原集合改变 set.symmetric_difference_update(other_s) 等效于 set ^= other_s 用集合与other_s的并集减去交集组成的集合更新集合,原集合改变 set.add(elem) 向集合中添加元素elem set.remove(elem) 从集合中删除元素elem,若elem不存在,引发 KeyError 异常 set.discard(elem) 从集合中删除元素elem,elem不存在不会引发异常 set.pop() 从集合中删除并返回任意元素 set.clear() 清空集合,集合变成空集合