小数据池和深浅拷贝
Posted nieice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小数据池和深浅拷贝相关的知识,希望对你有一定的参考价值。
小数据池
一种数据缓存机制,也称驻留机制
在同一代码块,相同的值不会开辟新的内存
特殊字符除外
小数据池只针对:在控制台时!
数字 :-5到256间的整数会被缓存
布尔值:都会缓存8
字符串
小于等于一个字符时会缓存
超过一个字母但是只有下划线,字母,数字组成也会缓存
如果字符串乘法,那小于等于20个就会缓存,超过则开辟新的内存
手动缓存,需要调用工具
from sys import intern a=intern("[email protected]"*5) b=intern("[email protected]"*5) a is b #True
在同一.py文件或pycharm中也有自己的小数据池,也是只会缓存str ,int ,bool类型,
但是小数据池会比外面的大.
- 数字都会缓存,运算的结果在-5到256之间会缓存,大于就不会缓存
- 默认的字符串都会缓存,如果执行乘法则与上面结论一致
- 布尔值默认缓存
深浅拷贝
a=[a,b,[a,b],c]
b=a#此时b指向的是a的内存地址,改动数值两个都变,若将a重新赋值则b不会改变,还是指向原先地址
a=a[:]#切片是浅拷贝
import copy
c=copy.copy(a)#浅拷贝,若a更改第一层的元素c不受影响,a若更改可变因素里的内容c也跟着改变
d=copy.deepcopy(a)#深拷贝,完全不受a的影响
以上是关于小数据池和深浅拷贝的主要内容,如果未能解决你的问题,请参考以下文章