小数据池以及深浅拷贝

今日内容

  1. 小数据池

    什么是小数据池:

    ​ 小数据池就是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

    深拷贝----- 不可变的数据类型和原列表指向同一个内存空间,可变数据类型会创建新的内存空间

    深浅拷贝怎么用:

    深浅拷贝在哪用

原文地址:https://www.cnblogs.com/liutong123/p/11041438.html