PythonDay06
第六章
今日内容
小数据池
深浅拷贝
集合
小数据池
== is id
== 判断两个值是否相等
is --- 是 判断两个值的内存地址是否相等
代码块:一个py文件,一个函数,一个模块,终端中每一行都是代码块
代码块中有自己的内存空间:int ,str ,bool
int:-2~正无穷
a = -6
b = -6
print(a is b)
a = 1000
b = 1000
print(id(a), id(b))
print(a is b)
str:
字符串:
定义字符串的时候是任意的
字符串(字符和数字)进行乘法时总长度不超过20
特殊符号(中文,符号)进行乘法的 时候乘以0 或 1
bool:
True,False
小地址池 -- int,str , bool
int:-5~ 256
str:
字母,数字长度任意
字符串进行乘法的时候总长度不能超过20
特殊符号进行乘法的时候只能乘 0
驻留机制:节省内存空间,提升效率(减少了开辟空间和销毁空间的耗时)
深浅拷贝
赋值, =
a = [1,2,3,4]
b = a
print(id(a),id(b))
print(a is b)
# a和b的内存地址一样,任何一个改,其他的改都改
浅拷贝
# 在列表的元素中,元素是列表的情况下,拷贝的是内存地址
# 当内部的元素发生改变时,拷贝的列表和原列表都发生改变
a = [1,2,3,[4,5]]
b = a[:]
# 浅拷贝a[-1].append(6)
print(b)
深拷贝
import copy # 导入 copy模块
a = [1,2,3,[4,5],6]
b = copy.deepcopy(a)
print(id(a[-2]))
print(id(b[-2]))
print(a)
print(b)
print(a == b)
print(id(a),id(b))
print(a is b)
# 不可变数据类型内存地址共用,可变数据类型新开辟一个空间 不管嵌套多深
集合
集合中的元素要求是不可变的并且还是唯一的,我们就利用它是唯一来做去重
集合 -- set
s = {1,2,3,4}
集合就是一个没有值得字典,无序,可变;
天然集合去重
s = {1,1,2,3,4,1,1,1,1}
s = {} # 空字典
s1 = set() # 空集合
print(type(s1))
print(type(s))
集合的增:
s = set()
s.add('one')
s.update('two') #不建议使用
set('12345') #后面跟可迭代对象,只能迭代添加到空集合
集合的删:
s = {100, 200 ,500 , 10 , 0.1, 0.5}
s.remove(500) # 通过元素删除
s.clear() # 清空列表
s.pop() # 随机删除
集合的改
先删除,后添加,没有改的方法
集合的查
for循环
其他操作
s = {1, 24, 25, 48, 98, 56}
s_ = {1, 24, 25}
差集 -
print(s - s1)
print(s1 - s)
交集 &
print(s & s1)
并集 |
print(s | s_)
反交集 ^
print(s ^ s_)
子集 返回一个布尔值
print(s > s_)
父级
print(s_ > s )
冻结集合
print(frozenset({1, 24, 5,4}))
PythonDay06的更多相关文章
- Python--day06(深浅拷贝、元组、字典、集合)
1. 深浅拷贝 1.1 值拷贝 s1直接将ls中存放的地址拿过来s1内部的值发生任何变化,s2都会随之变化 s1 = ['1','2','3','a']s2 = s1print(id(s1),id ...
- 小白学python-day06-
今天是day06,以下是学习内容总结: 但行努力,莫问前程. --------------------------------------------------------------------- ...
- pythonday06数据类型(四)
今日内容 1.集合 2内存相关 1.集合set 无序 无重复 v = {1,2,3,4,5,6,99,100} # 疑问:v = {} """ None int v1 = ...
随机推荐
- JavaScript动态创建script标签并执行js代码
<script> //创建一个script标签 function loadScriptString(code) { var script = document.createElement( ...
- BZOJ 4011: [HNOI2015]落忆枫音 计数 + 拓扑排序
Description 「恒逸,你相信灵魂的存在吗?」 郭恒逸和姚枫茜漫步在枫音乡的街道上.望着漫天飞舞的红枫,枫茜突然问出 这样一个问题. 「相信吧.不然我们是什么,一团肉吗?要不是有灵魂……我们 ...
- vscode中让html中php代码高亮
找到设置中的文件设置中的files.associations,增加以下内容(注意一下内容要放在右侧的用户设置中,而不是放在中间的默认设置中): { // Configure file associat ...
- 模板引擎ejs的include方法
html无法include header.ejs footer.ejs 最后用 user.ejs在首尾include
- mysql 安装教程(详细说明)
如果你装过,一定要先卸载干净,并且重启重新装.卸载教程(保证成功)https://www.cnblogs.com/qzhc/p/11354678.html 大家都知道MySQL是一款中.小型关系型数据 ...
- linux可用的跨平台C# .net standard2.0 写的高性能socket框架
能在window(IOCP)/linux(epoll)运行,基于C# .net standard2.0 写的socket框架,可使用于.net Framework/dotnet core程序集,.使用 ...
- 常量const实践
这篇文章写的很好:https://www.cnblogs.com/zhangfeionline/p/5882790.html 自己是实践: 1. 定义时必须初始化值,不然如下错误: 2. 3. 使用:
- GET,POST传值总结
GET和POST是什么?HTTP协议中的两种发送请求的方法. HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议. 其实,GET和POST本质上两者没有任何区别.他们都是 ...
- Java定时器Timer
Java定时器Timer在JDK库中,Timer类主要负责计划任务的功能,也就是在指定的时开始执行某一个任务.Timer类的主要作用就是设置计划任务,但封装任务的类却是TimerTask类,执行计划任 ...
- spring hibernate 事务整合 使用测试类 事务不自动提交的问题!!!
使用JUnit 测试hibernate 事务管理的时候应注意 ,测试类完成是默认回滚的. 所以只能查询数据库却不能增删改数据库. 应该在测试类上面加上注解 @Rollback(false) 表似默认 ...