一 、小数据池与代码块
(一)小数据池
作用:小数据池是一种缓存机制(驻留机制)
小数据池的数字范围-5~256
小数据池的规则:
1.字符串:
在同一代码块下,只要内容相同就采取相同的内存地址
乘法的时候长度不能超过20
乘法的时候中文,特殊符号乘以0的时候地址相同
2.数字:-5~256
3.布尔值:
在同一代码块下,只要内容相同就采用相同的内存地址
- 验证方法
在同一代码块下,只要有相同就采用相同的内存地址,小数据池的验证方法必须脱离代码块才能进行验证[^在cmd中端中验证],必须先执行代码块的规则,再执行小数据池的规则
(二)代码块
1.定义:
一个文件一个函数,一个雷,一个模块,终端中的每一行是一个代码块
2.支持数据类型:
- 数字:
- 在同一代码快下,只要内容相同就采取相同的内存地址(-5以后就不是)
- 数字在做乘法的时候范围 -5~256
- 数字在做乘法时不能使用浮点数
- 字符串:
- 在同一代码块下只要内容相同就采取相同的内存地址
- 乘法的总长度不能超过20
- 乘法的时候中文特殊符号乘以1或者0地址才想同
- 布尔值:
- 在同一代码块下,只要内容相同就采取相同的内存地址
3.==与is
- ==== 判断等号两边的值是否相等==
- is 判断两边的内存地址是否相等
二、深浅拷贝
(一)赋值
- 多个变量名指向同一个内存地址
- 一个变量对其进行操作,其他变量查看时都会变动
(二)浅拷贝
- 浅拷贝时只会开辟一个新的容器列表,其他元素都是元列表中的
- 浅拷贝在修改第一层元素(不可变数据类型时),拷贝出来的的新列表不会改变
- 浅拷贝在替换第一层元素(可变数据类型)的时候,拷贝出来的新列表不会进行改变
- 浅拷贝,在修改第一层元素中第二次层元素的时候,拷贝出来的新列表进行改变
- 浅拷贝只拷贝第一层元素
- 修改第一层元素时,新开辟的不进行改变
(三)深拷贝
- 深拷贝开辟一个空间容器(列表),不可变数据公用,可变数据类型(再次开辟一个新的空间),空间里的值是不可变的数据进行公用的,可变数据再次开辟空间
三、集合
(一) 集合的定义
1.定义
-
集合是没有值得字典,无序,不支持索引,并具有天然去重功能
-
定义方式
-
s = {1,"alex",(1,2,3),12,1,12,4,6,32,2,4} print(s)
(二) 集合的增删改查
1.增
s.add("67") #只能添加一个
print(s)
s.update("今天")#迭代添加
print(s)
2.删
print(s.pop()) #pop有返回值,并且随机删除
s.remove(3) #指定元素删除
print(s)
s.clear() #清空 ——产生set()空集合
print(s)
3.改
先删再加
4.查
for i in {1,2,3}
print(i)
(三) 其他操作
s1 = {1,2,3,4,5,6,7}
s2 = {5,6,7,1}
print(s1&s2) #交集
print(s1 | s2) #并集
print(s1 - s2) #差集
print(s1 ^ s2) #反交集
print(s1>s2) #父集
print(s1<s2) #子集
frozenset(s1) #冻结集合 不常用
dic = {frozenset(s1):1}
print(dic)