Python一天一颗糖(十二)集合的定义,集合的运算

一. 集合set

1.定义:set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以在set中没有重复的key。

# set中元素是无序的(哈希值分配),重复的元素被自动过滤掉

# set中的元素是不可变的类型,列表和字典是不能放进集合中的

# 空集合定义:a = set()

2.增删改查:

add():无序添加

update():

# 将字符串更新进入集合中,打散打乱字符,并放入集合

# 将列表更新进入集合,将列表的元素分别插入集合

# 上述操作,id始终未发生改变

删:clear(),remove,pop,discard(找不到不会报错)

改:因为元素是不可变,所以变相为先删再添加,来进行更改 

查:遍历,in ,not in

3.集合的运算:交,差,并,反交

注:集合的运算是返回一个结果,对原来的两个集合并不会产生影响

A.交集运算(& 或 intersection)

B.并集运算:将两个集合当中的所有元素都呈现出来,并去重(| 或 UNION)

 C.差集:-,或difference,结果保留被减数剩下的内容。

D.异或集/对称差集(^,symmetric_difference):只得到在一个集合中存在的元素

E.子集或超集:

# 如果集合a当中的元素都包含于集合b,那么可以说a是b的子集,b是a的超集。

# 用<=检查一个集合是否是另一个集合的子集

# 用模式issubset()判断a是否是b的子集,用issuperset判断a是否是b的超集 

# 真子集:如果集合a中的元素都是集合b中的元素,同时b中还有a没有的元素,那么可以说a是b的真子集。

# 判断真子集,用 <

F.相交与不相交:isdisjoint()——>判断是否不相交

4.应用

A. 列表去重:利用集合的定义,自动过滤重复元素。

# 注:但是可能会打乱原本的顺序,因为集合是无序的。

5.番外:冰冻集合

定义:frozenset,冰冻一旦创建,或者转化成功,就不再支持增删改查,只支持集合运算

小结:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值