python多大整数_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)

"""

深拷贝,拷贝过来的数据都会开辟新的内存空间,不会跟以前的占用一个内存空间

"""

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值