python 可变数据类型与不可变数据类型

python 的数据类型主要分为两类:

  • 不可变数据类型: 当该数据类型对应的变量的值发生了变化时,它对应的内存地址发生了改变
  • 可变数据类型: 当该数据类型对应的变量的值发生了变化时,它对应的内存地址不发生改变;

不可变数据类型

  • Number(数值), boolNumber 的子类型;
  • String(字符串);
  • Tuple(元组)。

可变数据类型

  • Set(集合);
  • List(列表);
  • Dictionary(字典)。
str1 = 'abc'
print(id(str1)) # 1658435207984

str1 = 'cba'
print(id(str1)) # 1658438833392


dict1 = {
  "name": "zs",
}
print(id(dict1)) # 1658435231296
# 修改
dict1["age"] = 20
print(id(dict1)) # 1658435231296

# 重新赋值
dict1 = {
  "name": "zs",
  "age": 20
}
print(id(dict1)) # 1658435231488

结论

  • 如果变量重新赋值,它对应的内存地址都会改变,所以说变量的值发生了变化,是指 容器模型(可包含其他对象的对象)修改自身内部的值,此时它的内存地址不会出现变化。则它是可变数据类型,这个可变更多是指容器类型的值可以修改,而不是指变量重新赋值。
  • 其中比较特殊的是 Tuple,它虽然是容器模型,但它刚出现,就被固定,容器内部的值不可修改,所以它属于 不可变数据类型
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值