今日内容
-
小数据池
什么是小数据池:
小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址,小数据池支持:str,int(范围 -5~256),bool
小数据池是干嘛的:
a = 1
b = 1
print(id()) id查看空间的内存地址 获取开辟空间的一种地址
代码块: 一个文件,一个模块,一个函数,一个类,终端中每一行代码都是代码块
在python中是用字典的方式存储
先执行代码块,不符合代码块才会执行小数据
is 判断两个内存地址是否相同 == 是判断等号两边的值是否相同,如果is相同 == 一定相同,如果== 判断相同is不一定相同
字符串:
1.字符串做乘法的时候总长度不能超过20个 进行驻留
2.自己定义的字符串 长度不限制,字符串必须是字母数字下划线组成 进行驻留
3.特殊字符(中文除外)定义一个的时候 进行驻留
4.字符串*1 其实就是赋值
代码块的规则:
数字:全部驻留
字符串:
1.字符串做乘法的时候总长度不能超过20
2.自定义的都驻留
3.乘数为1的时候 就是赋值
4.python3.7 乘法的时候总长度不能超过4096
总结:
小数据池数字:-5~256
小数据池字符串:乘法时长度不能超过20
小数据池支持str int bool
怎么能自己驻留:
(自己进行驻留)需要使用python的内置模块 form sys import intern
小数据池在哪用
1.面试的时候偶尔会用到
2.解决自己:
集合(了解)
什么是集合:集合就是一个没有值的字典遵循:唯一,无序,元素要求可哈希(不可变)
set{1,2,3},
集合怎么用:
增:set.update() 迭代添加 set.add
删:set.pop() #随机删除 set.remove() #通过元素删除 set.clear() #清空 del 删除整个集合
改:删了 再加
查:for
天然去重 ------ 唯一
其他操作:
s1 = {1,2,3,4}
s2 = {3,4,5,6}
(s1 - s2) 差集
(s1 | s2) 并集 (合集)
(s1 & s2) 交集
(s1 ` s2) 对称差集 (反交集)
(s1 > s2) 超集 (父集)
(s1 < s2) 子集
冻结集合:(可变转换成不可变)
集合在哪用:
去重
深浅拷贝(重点)(面试必问)
什么是深浅拷贝:
l1 = [1,2,3,4,[5,6,7]]
l2 = l1 赋值不是拷贝
l1 = [1,2,3,4,[4,5,6]]
l2 = l1[:] 或 l2 = l1.copy()浅拷贝 浅拷贝只拷贝第一层 浅拷贝会创建一个新的列表(容器) 列表中的元素和原列表的元素共用一个内存空间
深拷贝:import copy
深拷贝----- 不可变的数据类型和原列表指向同一个内存空间,可变数据类型会创建新的内存空间
深浅拷贝怎么用:
深浅拷贝在哪用