前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python set大小_python set集合

python set大小_python set集合

作者头像
用户7886150
修改2021-01-26 10:29:07
1.6K0
修改2021-01-26 10:29:07
举报
文章被收录于专栏:bit哲学院

参考链接: Python 集合set remove()

集合set

 可变的

 无序的

 不重复的元素集合

 set定义 初始化

 set() 生成一个空集合

 set(iterable) 可通过可迭代对象生产一个新的集合

 s1 =set()

 s2= set(range(5))

 s3= set(list(range(10)))

 s4= {} #这是字典的定义方法

 s5 = {9,10,11} #set

 s6 = {(1,2),3,'a'}

 s7= {[1],(1,),1} #set的元素要求必须可以hash 列表不能hash

 set的元素要求必须可以hash

 目前学过的不可hash的类型有list、set

 元素不可以索引

 set可以迭代

 set增加

 add(elem)

 增加一个元素到set中

 如果元素存在,什么都不做

 update(*others)

 合并其他元素到set元素中来

 参数others必须是可迭代对象

 就地修改

 set删除

 remove(elem)

 从set中移除一个元素

 元素不存在,抛出异常keyError异常

 discard(elem)

 从set中移除一个元素

 元素不存在,什么都不做

 pop() -> item

 移除并返回任意的元素

 空集返回KeyError异常

 clear()

 移除所有元素

 集合

 基本概念

 全集

 所有元素的集合。例如实数集,所有实数组成的集合就是全集

 子集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

 交集

 集合A和集合B,由所有属于A且属于B的元素组成的集合

 intersection(*others)  返回和多个集合的并集

 & 等同于intersection

 intersection_update(*others) 获取和多个集合的交集,并就地修改

 &= 等同于intersection_update

 差集

 集合A和B,由所有属于A切不属于B的元素组成的元素

 difference(*other) 返回和多个集合的差集

 - 等同于difference

 difference_update(*other)  获取和多个集合的差集并就地修改

 -= 等同于difference_update

 对称差集

 集合A和B,由所有不属于A和B的交集元素组成的集合,记作(A-B) U (B-A)

 symmetric_difference(other) 返回和另一个集合的差集

 ^ 等同于symmetric_difference

 symmetric_difference_update(other) 获取和另一个集合的差集就地修改

 ^= 等同于symmetric_difference_update

 issubset(other)、<=

 判断当前集合是否是另一个集合的子集

 set1 < set2

 判断set1是否是set2的真子集

 issuperset(other)、>=

 判断当前集合是否是other的超集

 set1 > set2

 判断set1是否是set的真超集

 isdisjoint(other)

 当前集合和另一个集合没有交集

 没有交集、返回True

 集合应用

 1、共同好友

 你的好友A、B、C,他的好友B、C、D,求共同好友

 {"A","B","C"}.intersection({"B","C","D"})

 2、微信群提醒

 XXX与群里的其他人都不是微信朋友关系

 并集,所有的群里的人的好友形成一个并集,userid in (A|B|C|...) ,用户id不存在这个并集中,说明他和任何人都不是朋友

 3、权限判断

 有一个API,要求权限同时具备A、B、C才能访问,用户权限是B、C、D,判断用户是否能访问该API

 API集合A,权限集合P

 A - P = {} , A-P为空集,说明P包含A

 A.issubset(P) 也行,A是P的子集也行

 A & P = A 也行

 有一个API,要求权限具备A、B、C任意一项就可以访问,用户权限B、C、D,判断用户是否能访问该API

 API集合A,权限集合P

 A & P != {} 就可以

 A.isdisjoint(P) == False 表示有交集

 4、一个总任务列表,存储所有任务。一个完成的任务列表。找出为未完成的任务

 业务中,任务ID一般不可以重复

 所有已完成任务ID放到一个set中,假设为COMPLETED,它是ALL的子集

 ALL - COMPLETED = UNCOMPLETED

 集合练习

 随机产生2组各10个数字的列表,如下要求:

 每个数字取值范围[10,20]

 统计20个数字中,一共有多少个不同的数字  #交集

 2组之间进行比较,不重复的数字有几个?分别是什么?  #对称差集

 2组之间进行比较,重复的数字有几个?分别是什么?  #并集

 a = [1, 9, 7, 5, 6, 7, 8, 8, 2, 6]

 b= [1, 9, 0, 5, 6, 4, 8, 3, 2, 3]

 s1=set(a)

 s2=set(b)print(s1) #去重

 print(s2) #去重

 print(s1.union(s2)) #并集 去重

 print(s1.symmetric_difference(s2)) #对称差集

 print(s1.intersection(s2)) #交集

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档