一、集合的作用
知识点回顾:可变类型是不可hash类型,不可变类型是可hash类型
作用:去重,关系运算
定义:可以包含多个元素,用逗号分割,集合的元素遵循三个原则:
1.每个元素必须是不可变类型(可hash,可作为字典的key)
2.没有重复的元素
4.无序
注意集合的目的是将不同的值存放在一起,不同的集合间用来做关系运算,无需纠结集合中的单个值
二、常用方法
in 和 not in
|并集(print(pythons.union(linuxs)))
&交集(print(pythons.intersection(linuxs)))
-差集(print(pythons.difference(linuxs)))
^对称差集(print(pythons.symmetric_difference(linuxs)))
==
>,>= ,<,<= 父集(issuperset),子集(issuberset)
1 2 3 4 5 6 7 8 9 10 11 12 | >,> = ,<,< = set1 = { 1 , 2 , 3 , 4 , 5 } set2 = { 1 , 2 , 3 , 4 } print (set1 > = set2) print (set1.issuperset(set2)) set1 = { 1 , 2 , 3 , 4 , 5 } set2 = { 1 , 2 , 3 } print (set1< = set2) print (set1.issubset(set2)) |
三、练习
一.关系运算
有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}
1. 求出即报名python又报名linux课程的学员名字集合
2. 求出所有报名的学生名字集合
3. 求出只报名python课程的学员名字
4. 求出没有同时这两门课程的学员名字集合
1 2 3 4 5 6 7 8 9 10 11 | pythons = { 'haiyan' , 'fank' , 'yaling' , 'lalal' , 'haidong' , 'biubiu' } linuxs = { 'six' , 'wu' , 'dabao' } # 1. 求出即报名python又报名linux课程的学员名字集合 pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'} linuxs = { 'six' , 'wu' , 'dabao' } print (pythons & linuxs) # 2. 求出所有报名的学生名字集合 pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'} linuxs = { 'six' , 'wu' , 'dabao' } print (pythons | linuxs) # 3. 求出只报名python课程的学员名字 pythons={'haiyan','fank','yaling','lalal','haidong','biubiu'} linuxs = { 'six' , 'wu' , 'dabao' } print (pythons - linuxs) # 4. 求出没有同时这两门课程的学员名字集合 pythons = { 'haiyan' , 'fank' , 'yaling' , 'lalal' , 'haidong' , 'biubiu' } linuxs = { 'six' , 'wu' , 'dabao' } print (pythons ^ linuxs) |
四、方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | # ========掌握部分======= linuxs={'six','wu','dabao'}linuxs.add('xiaoxiao')#说明set类型的集合是可变类型 linuxs.add([ 1 , 2 , 3 ]) #报错,只能添加不可变类型 print (linuxs) # 2. linuxs={'six','wu','dabao'}res=linuxs.pop() #不用指定参数,随机删除,并且会有返回值 print (res) # 3. res = linuxs.remove( 'wupeiqi' ) #指定元素删除,元素不存在则报错,单纯的删除,没有返回值, print (res) # 4. res = linuxs.discard( 'egon1111111111' ) #指定元素删除,元素不存在不报错,单纯的删除,没有返回值, # =========了解部分========= linuxs = { 'wupeiqi' , 'egon' , 'susan' , 'hiayan' } new_set = { 'xxx' , 'fenxixi' } linuxs.update(new_set) print (linuxs) linuxs.copy() linuxs.clear() #解压 a, * _ = { 'zzz' , 'sss' , 'xxxx' , 'cccc' , 'vvv' , 'qqq' } print (a) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架