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()
清空集合,集合变成空集合

 

posted @ 2021-02-09 21:37  junffzhou  阅读(255)  评论(0编辑  收藏  举报