python全栈开发-Day5 集合
一、首先按照以下几个点展开对集合的学习
#一:基本使用
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 集合的更多相关文章
- Python全栈开发day5
一.lambda表达式 对于简单的函数,存在一种简便的表示方式,即:lambda表达式 1 2 3 >>> shaw = lambda x,y:x + y >>> ...
- python全栈开发-Day5 元组、字典
python全栈开发-Day5 元组.字典 一.前言 首先,不管学习什么数据类型,我们都带着以下几个问题展开学习: #1:基本使用 1 .用途 2 .定义方式 3.常用操作+内置的方法 #2:该类型 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- Win10构建Python全栈开发环境With WSL
目录 Win10构建Python全栈开发环境With WSL 启动WSL 总结 对<Dev on Windows with WSL>的补充 Win10构建Python全栈开发环境With ...
- 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
Python全栈开发/人工智能公开课_腾讯课堂 https://ke.qq.com/course/190378 https://github.com/haoran119/ke.qq.com.pytho ...
随机推荐
- react+react-router+react-redux+nodejs+mongodb项目
一个实际项目(OA系统)中的部分功能.这个demo中引入了数据库,数据库使用了mongodb.安装mongodb才能运行完整的功能.要看完整的项目可以移步我的github 技术栈 React v15. ...
- 关于MYCAT 读写分离,与只读事务的问题.
习惯性为了复用mysql连接,喜欢加上@Transactional(readOnly = true) 只读事务,很多零碎的查询下,速度会快一些,也环保一些. 最近用mycat做了读写分离,其中一个查询 ...
- hive:框架理解
1. 什么是hive •Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. •本质是将HQL转换为MapReduce程序 2. 为什么 ...
- SQL中partition关键字的使用
最近在写后台语句时候,运用到了partition这样一个关键字. 先大致说一下背景,有一种数据表,如下 现在需要取出,每一个人最近的一次打卡时间. 思路是,先把数据按照人名分组,然后在每个组里面按照时 ...
- NLP︱高级词向量表达(二)——FastText(简述、学习笔记)
FastText是Facebook开发的一款快速文本分类器,提供简单而高效的文本分类和表征学习的方法,不过这个项目其实是有两部分组成的,一部分是这篇文章介绍的 fastText 文本分类(paper: ...
- file和file文件流
**io流是程序中比较常用的功能,基本上涉及到文件上传下载的都要用到这功能,比如上传头像,上传附件等等. 对于一个java程序员来说,io流也是必须掌握的,因此这里对比较常用的或者说曾经用过的方法进行 ...
- 【mongodb系统学习之二】mongodb的启动
二.mongodb的启动: 1.在mongodb2.6.9的文件夹中建立data目录.logs目录以及 logs目录下的mongodb.log文件,如图: 2.进入到mongodb的bin目录中执 ...
- tcp为什么要三次握手,而不能二次握手?
谢希仁版<计算机网络>中的例子是这样的,"已失效的连接请求报文段"的产生在这样一种情况下:client发出的第一个连接请求报文段并没有丢失,而是在某个网络结点长时间的滞 ...
- Linux下挂载新硬盘方法
Linux的硬盘识别在/dev/下建立相应的设备文件.如 sda 表示第一块SCSI硬盘 hda 表示第一块IDE硬盘(即连接在第一个IDE接口的Master口上) scd0 表示第一个USB光 ...
- RHEL64 缺少ISO 9660图像 安装程序试图挂载映像#1,在硬盘上无法找到该映像
用光盘安装Linux,很容易,按照提示一步一步就好.如果没有光驱,只好想办法用硬盘或者U盘安装了. 首先说说怎样用U盘启动Linux的安装程序:1.将ISO镜像文件拷贝到U盘中,并解压到U盘根目录.将 ...