• python的小数据池和深浅拷贝


    小数据池

    1. 一种数据缓存机制,也称驻留机制

    2. 在同一代码块,相同的值不会开辟新的内存

    3. 特殊字符除外

    4. 小数据池只针对:在控制台时!

      • 数字 :-5到256间的整数会被缓存

      • 布尔值:都会缓存8

      • 字符串

        • 小于等于一个字符时会缓存

        • 超过一个字母但是只有下划线,字母,数字组成也会缓存

        • 如果字符串乘法,那小于等于20个就会缓存,超过则开辟新的内存

        • 手动缓存,需要调用工具

          from sys import intern
          a=intern("alex@qq.com"*5)
          b=intern("alex@qq.com"*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的影响
    
  • 相关阅读:
    旋转数组中的最小数字
    二叉树的遍历:先序,中序,后序,递归,非递归,层次遍历
    重建二叉树
    Combination Sum II
    Combination Sum
    红黑树
    python 时间模块
    docker 常用命令
    python request 和requests 的区别
    python 面试题1
  • 原文地址:https://www.cnblogs.com/nieice/p/11018910.html
Copyright © 2020-2023  润新知