一、首先按照以下几个点展开对集合的学习

#一:基本使用

  1 、用途

  2 、定义方式

  3 、常用操作+内置的方法

#二:该类型总结

  1、 存一个值or存多个值 只能存一个值 可以存多个值,值都可以是什么类型

  2 、有序or无序

  3 、可变or不可变 !!!可变:值变,id不变。可变==不可hash !!!不可变:值变,id就变。不可变==可hash

二、集合

#作用:去重,关系运算,

# 知识点回顾 可变类型是不可hash类型 不可变类型是可hash类型

#定义集合:

   集合:可以包含多个元素,用逗号分割,

   集合的元素遵循三个原则:

  1:每个元素必须是不可变类型(可hash,可作为字典的key)

  2:   没有重复的元素

  3:无序

  注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

#优先掌握的操作:

  #1、长度len

  #2、成员运算in和not in

  #3、&交集

 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
stus_python={'李二丫','wxx','liudehua','alex','egon'} #既报名linux又报名python的学生:交集
print(stus_linux & stus_python)
print(stus_linux.intersection(stus_python)) # 值都是 {'alex', 'egon'}

  #4、|合集

 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
stus_python={'李二丫','wxx','liudehua','alex','egon'} #所有的学生:并集
print(stus_linux | stus_python)
print(stus_linux.union(stus_python)) #值都是
#{'oldboy', 'egon', 'liudehua', '张全蛋', '李二丫', 'wxx', 'alex', '李铁蛋'}

  #5、-差集

 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
stus_python={'李二丫','wxx','liudehua','alex','egon'} #只报名linux,没有报名python的:差集
print(stus_linux - stus_python)
print(stus_linux.difference(stus_python)) #值为 {'oldboy', '李铁蛋', '张全蛋'} #只报名python,没有报名linux的:差集
print(stus_python - stus_linux)
print(stus_python.difference(stus_linux)) #值为{'liudehua', '李二丫', 'wxx'}

  #6、^对称差集

 stus_linux={'alex','egon','张全蛋','李铁蛋','oldboy'}
stus_python={'李二丫','wxx','liudehua','alex','egon'} # 没有同时报名两门课程的学生姓名:交叉补集
print(stus_linux ^ stus_python)
print(stus_linux.symmetric_difference(stus_python)) #值都为 {'李铁蛋', '李二丫', 'oldboy', 'liudehua', '张全蛋', 'wxx'}

  #7、查看

 s1={1,'a','b','c','d'}

 for item in s1:
print(item) #值的排序是随机的是上面五个元素的随机排序

  #8、增加

 s1={'a','b','c'}
s1.add('d') # 一次添加一个值
s1.add(4)
print(s1) #值为{'a','b','c','d'}
s1.update({3,4,5}) #一次添加多个值
print(s1) #值为{'a','b','c','d',3,4,5} 这里元素的顺序都是随机的

  #9、删除

 s1={'a','b','c'}
#s1.discard() ## 当删除的元素不存在的时候,不会报错
s1.discard(4)
print(s1) #值为{'a','b','c'} #s1.remove() # 当删除的元素不存在的时候,报错
s1.remove(4) #报错 s1.pop() #随机取走一个元素
res=s1.pop()
print(res) #值是随机的

  #10、父集,子集:

 #父集:爹包含儿子
# s1={1,2,3}
# s2={1,2}
s1 > s2# 代表s1包含s2,s1是s2父集
s2 < s1 # s2是s1子集

python全栈开发-Day5 集合的更多相关文章

  1. Python全栈开发day5

    一.lambda表达式 对于简单的函数,存在一种简便的表示方式,即:lambda表达式 1 2 3 >>> shaw = lambda x,y:x + y >>> ...

  2. python全栈开发-Day5 元组、字典

    python全栈开发-Day5  元组.字典 一.前言 首先,不管学习什么数据类型,我们都带着以下几个问题展开学习: #1:基本使用 1 .用途 2 .定义方式 3.常用操作+内置的方法 #2:该类型 ...

  3. Python全栈开发【模块】

    Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...

  4. Python全栈开发【基础四】

    Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...

  5. Python全栈开发【基础三】

    Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...

  6. Python全栈开发【基础二】

    Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...

  7. python 全栈开发之路 day1

    python 全栈开发之路 day1   本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...

  8. Win10构建Python全栈开发环境With WSL

    目录 Win10构建Python全栈开发环境With WSL 启动WSL 总结 对<Dev on Windows with WSL>的补充 Win10构建Python全栈开发环境With ...

  9. 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂

    Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...

随机推荐

  1. hdu 2044 递推

    到达第n个格子的方案数等于第n-1个格子的方案数加上第n-2个格子的方案数. d[i]=d[i-1]+d[i-2]; AC代码: #include<cstdio> const int ma ...

  2. day3(while、流程控制)

    一.while 语法 white 条件: 执行代码... 小练习: #打印0-100的偶数 count = 0 while count <= 100: if count %2 == 0 : pr ...

  3. DSP_TMS32F2812的串口操作

    void scia_fifo_init(int ibaud) { SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback // No parit ...

  4. 奶瓶beini系统

    奶瓶(beini)这个系统,是一款基于 Tiny Core Linux 搭建的无线网络安全测试系统,当然由于它是用来安全测试的系统,因此在安全方面自然有着强大的功能.而且,这个系统非常简便易学,因此现 ...

  5. VxWorks 引导程序

    前言:vxworks 的一些文件,如 usrconfig.c 在 config,comp目录中均有出现,因编译方式而选择某一个文件,命令行方式采用 config 目录文件,tornado 图形界面配置 ...

  6. 用vs2013+velt-0.1.4进行嵌入式开发 进行海思平台 UBOOT 开发

    1.1    什么是VELT VELT的全称是Visual EmbedLinuxTools,它是一个与visual gdb类似的visual studio插件,用以辅助完成Linux开发.利用这个插件 ...

  7. 在SDL工程中让SDL_ttf渲染汉字

    有时候在关于SDL的博文中看到一些评论,说SDL对中文的支持不佳,因为当程序涉及中文时总是输出乱码. 照我个人观点,这里面很多都是误解.下面就根据我在windows下使用SDL的情况,说说我的观点. ...

  8. hibernate(二)主键生成策略

    hibernate主键生成策略主要指的是在实体类orm的配置 <id name=""> <generator class="native"&g ...

  9. java并发:Synchronized 原理

    1.同步代码块: 反编译结果: monitorenter : 每个对象有一个监视器锁(monitor).当monitor被占用时就会处于锁定状态,线程执行monitorenter指令时尝试获取moni ...

  10. iOS - MySQL 的安装配置

    前言 提前下载好相关软件,且安装目录最好安装在全英文路径下.如果路径有中文名,那么可能会出现一些莫名其妙的问题. 提前准备好的软件: mysql-5.7.17-macos10.12-x86_64.dm ...