set 顾明思义,就是个集合,集合的元素是唯一的,无序的。一个{ }里面放一些元素就构成了一个集合,set里面可以是多种数据类型(但不能是列表,集合,字典,可以是元组)。python的set是一个无序不重复的元素集,基本功能包括关系测试和消除重复元素,集合对象还支持并、交、差、对称差等。set因为没有位置的概念,所以list方法切片什么的都没有用。
基本操作:
添加
s.update( x ) 将集合 x 并入原集合s中,x 还可以是列表,元组,字典、字符串等,x 可以有多个,用逗号分开,
(update后加字符串后会将字符串分成单个字母):
删除:s.discard( x )将 x 从集合s中移除,若x不存在,不会引发错误
s.remove( x ) 将 x 从集合s中移除,若x不存在,会引发错误
s.pop() 随机删除并返回集合s中某个值,
注意,因为set是无序的,不支持下标操作,没有所谓的最后一个,pop()移除随机一个元素,这和其他数据结构不同
s.issubset( x ) 判断 集合s 是否是 集合x 子集
s.issuperset( x ) 判断 集合x 是否是集合s的子集
返回一个新的集合,包含两个集合的每一个元素(即并集)
s.union( x ) 返回s与集合x的并集,不改变原集合s,x 也可以是列表,元组,字典、字符串。:
取交集:s.intersection( x ) 返回s与集合x的交集,不改变s, x 也可以是列表,元组,字典、字符串。
取相离的集合:s.difference( x )返回在集合s中而不在集合 x 中的元素的集合,不改变集合s, x 也可以是列表,元组,字典、字符串。
取总离集:s.symmetric_difference( x ) 返回s和集合x的对称差集,即只在其中一个集合中出现的元素,不改变集合s, x 也可以是列表,元组,字典、字符串。
判断是否二者为不相交的:
直接更新:
浅复制与清空: