python中的可变类型与不可变类型

Python的可变类型包括列表、字典和集合,不可变类型有字符串、数字和元组。不可变类型如int,在赋值时会创建新对象,而多个相同值的int引用指向同一内存地址。浮点型则不同,相同值的变量内存地址不同。可变类型如列表在原处修改,多个值相同的列表变量内存地址不同,赋值后可指向同一地址,修改一个会影响另一个。
摘要由CSDN通过智能技术生成

python中的可变类型与不可变类型区别较大,另int类型较其他不可变类型还有细微不同
总的来说 python中可变类型有列表,字典,集合 不可变类型有字符串 数字 元组
对不可变类型的变量重新赋值,实际上是重新创建一个不可变类型的对象,并将原来的变量重新指向新创建的对象(新开辟了一块内存地址),如果没有其他变量引用原有对象的话(即引用计数为0),原有对象就会被回收

不可变类型
以int型为例 实际上 i+=1并不是在原有的int对象上加1,而是重新创建一个value为6的对象,i这个引用指向这个新对象

i=5
i+=1
print(i)
---6

通过id函数查看变量i的内存地址进行验证

>>> i = 5
>>> i += 1
>>> i
6
>>> id(i)
140243713967984
>>> i += 1
>>> i
7
>>> id(i)
140243713967960

可以看到i的值发生变化 其内存地址就会变化 其实就是创建了一个新对象 i这个引用指向这个对象
看一下多个int类型的变量值相同时,看看他们的内存地址是否相同

>>> i = 5
>>> j = 5
>>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值