python课堂整理7---集合
前面小节:
sep 用来控制每个元素间的间隔符号
print("alex", "dabai", "liu", sep = "")

按可变不可变:
1.可变:列表,字典
2.不可变:字符串, 数字, 元组
修改了变量的值,而id号跟着改变,即不可变类型
name = 'alex'
print(id(name))
name = 'sb'
print(id(name))


按访问顺序:
1.顺序访问:字符串, 列表, 元组
2.映射:字典
3.直接访问:数字
存放元素个数:
容器类型:列表,元组, 字典
原子:数字,字符串
#################集合 ###################
一、集合 set
1.不同的元素组成
2.无序
3.集合中元素必须是不可变类型
s = {1, 2, 3, 4, 5}
内置函数:set() 也有简单的去重作用,不在意顺序的话
s = set('hello')
print(s)
s1 = set(["alex", "alex", "sb"])
print(s1)

二、集合的魔法
1. add, 向集合添加元素(只能更新一个)
s = {1, 2, 3, 4, 5, 6}
s.add('alex')
print(s)

2. clear 清空集合
s.clear()
3. 拷贝集合
s1 = s.copy()
4. pop随机删除元素
s = {1, 2, 3, 4, 5, 6}
v = s.pop()
print(s,v)

5. remove 指定元素删除,删除元素不存在时会报错
s = {1, 2, 3, 4, 5, 6}
s.remove(3)
print(s)

6. discard 指定元素删除,但是要删的元素不存在也不会报错
s = {1, 2, 3, 4, 5, 6}
s.discard(5)
print(s)

7. 交集
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.intersection(s2)
print(n)

或者:&
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 & s2
print(n)

8. 并集
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.union(s2)
print(n)

或者:|
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 | s2
print(n)

9.求差集(s1 中有而s2中没有)
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.difference(s2)
print(n)

或者:-
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 - s2
print(n)

10.交叉补集(s1 和 s2 的全部,减去两者的交集)
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1.symmetric_difference(s2)
print(n)

或者 ^
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
n = s1 ^ s2
print(n)

11.更新差集
s1 = {1, 2, 3}
s2 = {2, 3, 4, 6}
s1.difference_update(s2)
s1 = s1 - s2
print(s1)
print(s1)

12. s1 是否是s2的子集
s1 = {1, 2, 3}
s2 = {1, 2, 3, 4, 6}
n = s1.issubset(s2)
print(n)

13. s2是否是s1的父集
s1 = {1, 2, 3}
s2 = {1, 2, 3, 4, 6}
n = s2.issuperset(s1)
print(n)

14. 更新多个值,参数可以是列表、元组等
s1 = {1, 2, 3}
s2 = {1, 2, 3, 4, 6}
s1.update(s2)
print(s1)

15. 定义一个不可变的集合(不能增删改)
s = frozenset("hello dabai")
print(s)

python课堂整理7---集合的更多相关文章
- python课堂整理19----迭代器和生成器
一.概念 • 迭代器协议: 对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么引起一个stopIteration异常,以终止迭代(只能往后走,不能往前退) • 协议是一种约定,pyt ...
- python课堂整理18---文件操作(下)
一.b模式,字节方式(二进制的单位),rb wb ab f = open('test.py', 'rb', encoding = 'utf-8') 报错,因为用了b模式,就不能再指定编码格式了,已经指 ...
- python课堂整理16---内置函数
1. abs :求绝对值 print(abs(-1)) 2. all()传入一个可迭代对象,对该对象进行bool值运算,若都为True 就返回True,有一个为假,就返回False print(all ...
- python课堂整理10---局部变量与全局变量
一.局部变量与全局变量 1. 没有缩进,顶头写的变量为全局变量 2. 在子程序里定义的变量为局部变量 3. 只有函数能把变量私有化 name = 'lhf' #全局变量 def change_name ...
- python课堂整理4---列表的魔法
一.list 类, 列表 li = [1, 12, 9, "age", ["大白", "小黑"], "alex"] ...
- python课堂整理1
1.变量 变量只能由字母.数字.下划线组成 特例:1.变量不能用数字开头 2.不能是python的关键字 3.最好不要和python内置的东西重复 让变量名有意义 些 python3的关键字 ...
- python课堂整理21---初识装饰器
一.装饰器: 本质就是函数,功能:为其他函数添加附加功能 原则: 1.不能修改被装饰函数的源代码 2.不能修改被修饰函数的调用方式 一个简单的装饰器 import time def timmer(fu ...
- python课堂整理20----生产者消费者模型
一.实现功能:店铺生产包子,消费者来吃 import time def producter(): ret = [] for i in range(10): time.sleep(0.1) ret.ap ...
- python课堂整理17---文件操作(上)
1.在同一目录下新建文本文件 “爱了” 2.在该文件下写入内容,同时留意pycharm右下角的编码格式为 utf- 8 3.下面程序中的read函数会索引系统默认的编码格式,winx下是gbk ,所以 ...
随机推荐
- 【Linux】Linux相关资料
linux相关技术资料: linux技术资料大全: http://t.cn/zYNBwFs
- 测试链接服务器sql 语句
sp_addlinkedsrvlogin 创建或更新本地 Microsoft® SQL Server™ 实例上的登录与链接服务器上远程登录之间的映射. 语法 sp_addlinkedsrvlogin ...
- pip与conda的区别
pip和conda到底有什么不一样? 今天看到我的foreman开始报错去询问才发现.我们的python包管理工具已经从pip整体迁移到了conda..最近的迁移真的非常多..前端也在迁移打包 跟着发 ...
- Python 爬虫从入门到进阶之路(九)
之前的文章我们介绍了一下 Python 中的正则表达式和与爬虫正则相关的 re 模块,本章我们就利用正则表达式和 re 模块来做一个案例,爬取<糗事百科>的糗事并存储到本地. 我们要爬取的 ...
- Scala 学习之路(十三)—— 隐式转换和隐式参数
一.隐式转换 1.1 使用隐式转换 隐式转换指的是以implicit关键字声明带有单个参数的转换函数,它将值从一种类型转换为另一种类型,以便使用之前类型所没有的功能.示例如下: // 普通人 clas ...
- Docker中使用CentOS7镜像
因后面会将操作系统从CentOS6.4升级到CentOS7,先试用下CentOS7. 启动容器服务 systemctl start docker.service 下载CentOS7 镜像 [roo ...
- UVALive 6255:Kingdoms(状压DFS)
题目链接 题意 给出n个王国和n*n的矩阵,mp[i][j] 代表第 i 个王国欠第 j 个王国 mp[i][j] 块钱.如果当前的王国处于负债状态,那么这个王国就会被消除,和它相连的王国的债务都会被 ...
- 在xcode中新建项目使用Image.xcassets时不显示自定义图片
这个很简单,先在Images.xcassets中设置一个LaunchImage,然后再项目设置的general-->App Icons and Launch Images-->Launch ...
- C++学习书籍推荐《C++编程思想第二版第一卷》下载
百度云及其他网盘下载地址:点我 编辑推荐 “经典原版书库”是响应教育部提出的使用原版国外教材的号召,为国内高校的计算机教学度身订造的.<C++编程思想>(英文版第2版)是书库中的一本,在广 ...
- WebRTC:数据传输相关协议简介
对网络协议来说,需要做的通常就两件事情:1.建立连接,2.传输数据,WebRTC也不例外. 假设WebRTC应用的两端已经建立了连接,那么,剩下就是如何传输数据的问题了. WebRTC同时支持传输音视 ...