python集set

集set

set翻译为集合
collection翻译为集合类型

set
可变的、无序的、不重复的元素的集合
s = {}空的  是字典
s = {1,2}set


set的元素
set的元素要求必须可以hash
不前学过的不可hash的类型有list、set、bayterry
元素不可索引
set可以迭代

set增加
add(elem)
增加一个元素到set中
如果元素存在则什么都不做
update
合并其他元素到集合中来
参数others必须是可迭代对象
就地修改
(去重特性)

remove (elem)
从set中移除一个元素
元素不存在,抛出keyError异常
discard (elem)
从set中移除一个元素
元素不存在,什么都不做
pop()   
移除并返回任意的元素
空集返回keyerror异常
clear()
移除所有元素


set修改、查询

修改
没有修改
要么删除,要么加入新的元素
查询
无法索引
遍历
可以迭代所有元素

成员运算符
in 和not in 判断元素是否在set中

set和线性结构
线型结构的查询时间复杂度是0(n),即随着数据规模的增大而增加耗时
set、dict等结构,内部使用hash值作为key,时间复杂度可以做到0(1),查询时间和数据规模无关

可hash
数值型int、float、complex
布尔型True、False
字符串string、 bytes
tuple
None
以上都是不可变类型,成为可哈希类型,hashable

set的元素必须是可hash的

集合
基本概念
全集
所有元素的几个。例如实数集,所有实属组成的集合就是全集
子集subset和超集superset
一个集合A所有元素都在另一个集合B内,A是B的子集,B是A的超集
真子集和真超集
A是B的子集,且A不等于B,A就是B的真子集,B是A的真超集
并集:多个集合合并的结果
交集:多个集合的公共部分
差集:集合中出去和其他集合公共部分

集合运算
并集
将连个集合A和B的所有元素合并到一起,组成的集合称作集合A与集合B的并集
union(*others)
返回和多个集合合并后的新的集合
| 等同于union
update(*others)
和多个集合合并,就地修改
|=
等同update

集合运算
交集
intersection(*others)
返回和多个集合的交集
&等同intersection
intersection_update(*others)
获取和多个集合的交集,并就地修改
&=等同intersection_update

差集
difference(*others)
返回和多个集合的差集
-等同于difference
difference_update(*others)
获取和多个集合的差集就地修改
-=
等同difference_update

集合运算
对称差集
(A-B)并(B-A)
symmetric_difference_update(other)
返回和另一个集合的差集并就地修改
^=等同symmetric_difference_update


issubset(other)   <=
判断当前集合是否是另一个集合的子集
set1 < set2
判断set1是否是set2的真子集
issuperset(other)   >=
判断当前集合是否是other的超集
set1 > set2
判断set1是否是set的真超集
isdisjoint(other)
当前集合和另一个集合没有交集
没有交集,返回True
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值