• Python的大小整数池跟深浅copy


    一、小整数池

    可变的数据类型:list dict set

    可变: 就是里面的数据类型变了,但是指向的内存地址没变。

    不可变的数据类型:str 数值类型 tuple

    不可变:如果改变了里面的值,相应的只想内存地址也会发生改变。所以说为不可变的数据类型

    小整数池:-5 - 256 在这个池子里面的数值都是提前创建好的


    二、intern 机制(大整数池,针对字符串存储)

    大整数池: 只存储包含标准字符(数字、字母、下划线)的字符串,包含特殊字符的字符串不会被
    添加到大整数池

    例子:
    a = "123"
    b = "123"
    a is b =True
    注释:这两个指向的内存地址是一样的

    c= "123#"
    d = "123#"
    c is d = False
    注释:这两个指向的内存地址是不一样的

    三‘ 深,浅拷贝

    # 浅拷贝
    list1 = [1, 2, 3]
    list2 = [1,2,list1]
    list3 = list2.copy()

    list1.append(4)
    print(list3)
    """
    浅拷贝只会拷贝最外层的,里面如果有嵌套的,嵌套的数据内存指向是不会变得
    例子:
    上面copy了list2,list3跟list2指向的内存地址发生了变化,但是里面嵌套
    的list1 内存地址并没有发生变化,所以修改了list1的值,list3也会发生变化
    """

    # 深拷贝

    例子:
    浅拷贝
    list1 = [1, 2, 3]
    list2 = [1, 2, list1]
    list3 = list2.copy()
    list4 = copy.deepcopy(list2)
    list1.append(5)
    print(list4)
    """
    深拷贝,拷贝过来的数据都会开辟新的内存空间,不会跟以前的占用一个内存空间

    """

    注意:深浅拷贝一般发生在列表嵌套列表时讨论

  • 相关阅读:
    NumPy 基本语法汇总
    python自动化操作——excel刷新数据并截图发送微信
    datefram学习(持续更新)
    python——imap邮件自动下载附件和邮件正文
    ERP笔记1系统环境
    ERP笔记2善用SVN对系统环境进行配置和组织
    ERP笔记4SVN目录的权限分配
    ERP笔记3数据库的版本化
    DBCC CHECKCATALOG 错误
    非常棒的放礼花的源程序
  • 原文地址:https://www.cnblogs.com/666666pingzi/p/10947322.html
Copyright © 2020-2023  润新知