打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python 可变数据类型和不可变数据类型
userphoto

2023.04.26 宁夏

关注

可变数据类型:列表list和字典dict,但是字典中的key值必须是不可变类型

不可变数据类型:整型int、浮点型float、字符串型string和元组tuple。

1.区别:

1)不可变数据类型如下:

  1. x=1
  2. >>> id(x)
  3. 1484811744
  4. >>> y=1
  5. >>> id(y)
  6. 1484811744
  7. x=2
  8. >>> id(x)
  9. 1484811776
  10. >>> y=2
  11. >>> id(y)
  12. 1484811776
  13. >>> z=y
  14. >>> id(z)
  15. 1484811776

value改变,id也跟着改变。

2)可变数据类型如下:

  1. a=[12,'cf']
  2. >>> id(a)
  3. 48120456
  4. a=[12,'cf']
  5. >>> id(a)
  6. 48210952
  7. >>> a.append(45)
  8. >>> id(a)
  9. 48210952
  10. a+=[2]
  11. >>> a
  12. [12, 'cf', 45, 2]
  13. >>> id(a)
  14. 48210952

id不变的情况下,value可改变。

python中的不可变数据类型,不允许变量的值发生变化,如果改变了变量的值,相当于是新建了一个对象,而对于相同的值的对象,在内存中则只有一个对象,内部会有一个引用计数来记录有多少个变量引用这个对象;可变数据类型,允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。

参考:https://wenku.baidu.com/view/860e60d070fe910ef12d2af90242a8956becaae8.html

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【Python面试】 说说Python可变与不可变数据类型?
深度解读Python深拷贝与浅拷贝问题
软件构造3.1 数据类型和类型检查
Python中可变对象和不可变对象的差异?
对于新手来说,Python中有哪些难以理解的概念?
扣丁学堂Python培训之解析不可变数据类型与可变数据类型
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服