13. 集合
一. 集合
集合,简称.由任意个元素构成的集体.高级语言都实现了这个非常重要的数据结构类型.
Python中.它是可变的、无序的、不重复的元素的集合
1.1 python中集合的表示方法
以下2种方法都可以

空集合

1.2 集合中元素的性质
去重:在集合中,所有元素必须相异
无序:因为无序,所以不可索引
可哈希:Python集合中的元素必须可以hash,即元素都可以使用内建函数hash
目前学过不可hash的类型有:list、set、bytearray
可迭代:set中虽然元素不一样,但元素都可以迭代出来
1.3 集合的增--删--改
增
add(增加单个元素)
增加一个元素到set中
如果元素存在,什么都不做

update(增加多个元素)
update相当于是把容器里面的数据当成可迭代对象,一个个拿出来,然后加入到集合里面去

删除
remove
从set中移除一个元素
元素不存在,抛出KeyError异常
discard
这个和remove的区别就是它不会报错,有我就帮你移除,没有就没有反正不会报错
pop()
移除并返回任意的元素
修改
集合类型没有修改.因为元素唯一,如果元素能够加入到集合中,说明它和别的元素不一样
所谓修改,其实就是把当前元素改成一个完全不同的元素,就是删除加入新元素
1.4 索引
非线性结构,不可索引
1.5 遍历
只要是容器,都可以遍历元素.但是效率都是O(n)
1.6 效率问题
集合的效率一定是比列表高的,把元素存入到集合的时候,其实都是做了hash,这样就会有一个hash值,所以再去集合中查找这个元素的时候,会先把这个元素hash得到hash值,拿着hash值去集合中,很快就能找到集合中是否有这个hash值!所以,集合跟数据的量级是没有关系的!而列表是要去一个个比对,肯定没有集合的效率高
1.7 可哈希
数值型int、float、complex
布尔型True、False
字符串string、byte
stuple
None
以上都是不可变类型,称为可哈希类型,hashable
set元素必须是可hash的