Python——集合
主要功能是对比列表中的信息,进行关系测试。
特点:
1. 去重
2. 无序
3. 没有修改功能,只能删除后再添加
4. 公共功能除了len和for循环其他不可使用
5. 不能作为字典的key使用
6. 列表,字典,集合不能作为集合嵌套
7. 表示空位set()
8. 集合内,数字1 = True ,0 = False 并且当做重复内容去掉。
以{}的形式出现,类型为set
1 2 3 4 5 | list_1 = [ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ] #创建列表 list_1 = set (list_1) #关键字转换成集合 print (list_1, type (list_1)) #输出集合,并直接进行去重。 { 1 , 2 , 3 , 4 , 5 , 33 } < class 'set' > #以大括号的形式出现,数据类型为set |
交集:
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 2 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ]) print (list_1.intersection(list_2)) #交集,就是将两个集合中的重复项显示出来。 { 2 , 4 , 5 } |
交集缩写:
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 2 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ]) print (list_1 & list_2) #交集缩写 { 2 , 4 , 5 } |
并集:
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 2 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ]) print (list_1.union(list_2)) #并集,就是将两个列表中的重复选项去掉合并在一起。 { 1 , 2 , 3 , 4 , 5 , 33 , 6 , 7 , 8 } |
并集缩写。
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 2 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ]) print (list_1 | list_2) #并集缩写 { 1 , 2 , 3 , 4 , 5 , 33 , 6 , 7 , 8 } |
差集,就是1里面有而2里面没有的数据。
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 2 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ]) print (list_1.difference(list_2)) #差集 { 1 , 3 , 33 } |
差集缩写:
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 2 , 2 , 4 , 5 , 6 , 7 , 7 , 8 ]) print (list_1 - list_2) #差集缩写 { 1 , 3 , 33 } |
子集,就是判断列表1中是不是包含列表3的全部数据。
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_3 = set ([ 1 , 2 , 3 ]) print (list_3.issubset(list_1)) #子集 True #返回false或True |
父集,就是判断列表3中全部内容是不是在列表1中都有。
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_3 = set ([ 1 , 2 , 3 ]) print (list_1.issuperset(list_3)) #父集 True #返回false或True |
对称差集,就是将两个列表中都有的数字去掉,然后合并在一起。
1 2 3 4 5 6 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 1 , 2 , 3 , 88 ]) print (list_1.symmetric_difference(list_2)) #对称差集 print (list_1 ^ list_2) #对称差集缩写 { 33 , 4 , 5 , 88 } |
判断交集,就是判断两个列表中是否有相同信息。
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_2 = set ([ 1 , 2 , 3 , 88 ]) print (list_1.isdisjoint(list_2)) False #如果有交集就显示False,如果没有就显示True |
添加:
1 2 3 4 5 6 7 8 9 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 33 , 1 ]) list_1.add( 999 ) #添加 print (list_1) list_1.update([ 444 , 333 , 222 ]) #添加多项 print (list_1) { 1 , 2 , 3 , 4 , 5 , 33 , 999 } { 1 , 2 , 3 , 4 , 5 , 33 , 999 , 333 , 444 , 222 } |
删除:
1 2 3 | list_1 = set ([ 1 , 2 , 3 , 5 , 3 , 4 , 2 , 333 , 1 ]) list_1.remove( 333 ) #删除 print (list_1) |
随机删除一个:
1 2 3 4 | list_1 = set ([ 1 , 2 , 3 , 5 , 4 , 333 ]) print (list_1.pop()) 1 #返回删除的值 |
删除,如果不在集合内将不报错。
1 2 | list_1 = set ([ 1 , 2 , 3 , 5 , 4 , 333 ]) list_1.discard( 222 ) #集合内没有也不会报错。 |
显示去重以后的长度:
1 2 3 4 5 | list_1 = set ([ 1 , 2 , 3 , 5 , 4 , 333 ]) print ( len (list_1)) 6 |
判断数字是否在合集中。
1 2 3 4 | list_1 = set ([ 1 , 2 , 3 , 5 , 4 , 333 ]) print ( 6 in list_1) False #如果没有将显示False,如果有将显示True |
盘算数字是否不在这个集合中。
1 2 3 4 | list_1 = set ([ 1 , 2 , 3 , 5 , 4 , 333 ]) print ( 6 not in list_1) True #如果不在将显示True,如果在将显示False |
复制:
1 2 3 4 5 6 7 | list_1 = set ([ 1 , 2 , 3 , 5 , 4 , 333 ]) list_2 = list_1.copy() #复制到list_2中。 print (list_2) print ( type (list_2)) { 1 , 2 , 3 , 4 , 5 , 333 } < class 'set' > |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)