• 小数据池和深浅拷贝


    小数据池

    • 什么是小数据池?

      • 小数据池就是Python中一种调高效率的方式,固定数据类型使用同一个内存地址
      • 支持 : str,int,bool
    • 小数据池是干嘛的?

      • id()查看空间的内存地址 获取开辟空间的一种地址
      • 小数据池数字支持范围 : -5 ~ 256
      • is : 判断两个内存地址是否相同
      • == : 判断等号两边的值是否想铜
    • 字符串

      • 字符在做乘法的时候总长度不能超过20,进行驻留
      • 自己定义的字符串 ,长度不限制,但字符串必须是字母数字下划线的组成,进行驻留
      • 特殊字符(中文除外)定义一个的时候,进行驻留
      • 字符串*1,其实就是赋值
    • 代码块

      • 一个文件,一个模块,一个函数,一个类,终端中的每一行都是一个代码块,在Python中以字典的方式储存
      • 数字,全部驻留
      • 字符串
        • 乘法时总长度不超过20
        • 自定义的都驻留
        • 乘数为1的时候就是赋值
        • Python3.7乘法的时候总长度不能超过4096
    • 强制驻留

    • from sys import intern

      ​ a = intern(@@@@*20)

      ​ b = intern(@@@@*20)

      print(a is b) #自己进行驻留

    集合

    • 什么是集合?

      • 集合就是一个没有值的字典,遵循: 唯一,无序,元素要求可哈希(不可变)

      • 集合是可变的,无序的

      • 作用主要就是去重

      • 增加

        • s.update("3456") #迭代添加
        • s.add()
      • 删除

        • s.pop() : 随机删除 #据自己观察发现有点规律,但是不好说
        • s.remove() : 通过元素删除
        • s.clear() : 清空
        • del s : 删除整个集合
      • 修改

        • 删了再加不就是改了
      • 其他操作

        # print(s1 - s2)  #差集
        # print(s1 | s2)  #并集   (合集)
        # print(s1 & s2)  #交集
        # print(s1 ^ s2)  #对称差集  -- 反交集
        # print(s1 > s2)  # 超集   -- 父集
        # print(s1 < s2)  # 子集
        # 冻结集合(可变 转换成 不可变)  -- 更不常用
        # f_s = frozenset({1,2,3,4,5})
        # # dic = {f_s:"1"}
        # # print(dic)
        

    深浅拷贝

    • 深浅拷贝的规律:

      赋值: 两个变量使用的是同一个空间
      浅拷贝:修改不可变数据类型,不变动,修改可变数据类型,变动
      深拷贝:修改就不变动

  • 相关阅读:
    IOS开发教程--怎样使用点9图片
    Android studio 自己主动排版
    17 facade
    递归算法时间复杂度分析与改善
    __FUNCTION__, __LINE__ 有助于debug的宏定义
    表名在数据库中的存储大写和小写略解
    七夕节不撸代码你好意思说自己是程序员
    前端开发面试题收集(js部分)
    总体架构
    立即执行的匿名函数
  • 原文地址:https://www.cnblogs.com/W-Y-C/p/11005537.html
Copyright © 2020-2023  润新知