5. 集合 (set)
什么是集合(set)
一种非线性的数据结构,是可变的、无序的(散落)、不重复的元素的可迭代的集合类型。
set的定义(初始化)
注意!s5 = {}
定义出来的是字典类型,不是set类型。
set的HASH(哈希)
set会哈希所有的值。
去重就是基于哈希的。
list
、bytearray
、dict
、set
不可hash,因此set在中不能出现。
set的增删
增删都是就地修改。
add操作
增加一个元素
update操作
增加可迭代对象(任意个)
remove操作
移除一个元素
如果没有,将会返回KeyError
。
pop操作
随机移除一个元素并返回
discard操作
移除一个元素
如果没有,不返回错误 。
clear操作
移除所有元素
set的查改
修改
set不能修改
查询
无法索引,能够遍历迭代所有元素。 时间复杂度O(1)
set间的操作
并集
返回和多个集合合并后的新集合
可以用|
表示。
多个集合合并,就地修改
可以用|=
表示。
交集
返回和多个集合的交集
可以用&
表示。
多个集合的交集,就地修改
可以用&=
表示。
差集
返回和多个的差集
可以用-
表示。
获取差集,就地修改
可以用-=
表示。
对称差集
返回和多个的对称差集(并集与交集的差集)
可以用^
表示。
获取对称差集,就地修改
可以用^=
表示。
set间的比较
子集
真子集
超集
真超集
是否没有交集
没有交集返回True
Last updated
Was this helpful?