python如何保持数据类型不变_python的可变与不可变数据类型

背景:

探寻python的数据类型是否可变,也可以更好的理解python对内存的使用情况。

可变与不可变定义

可变数据类型:在python中定义一个变量,当变量值被修改后,内存地址未变更(对象未变更),则将该数据定义为可变数据类型。

可不变数据类型:当变量数值被修改后,变量的内存地址发生变更(创建了新对象),则认为是不可变数据类型。

针对python数据类型进行测试:

数字:

>>> a = 111

>>> id(a)1549733776

>>> a = 222

>>> id(a)1549737328

结论:数字类型的变量值变更后内存地址发生改变

字符串:

>>> a = "abcdefg"

>>> id(a)2363386268560

>>> a = "abcdefgggggg"

>>> id(a)2363386295024

结论:字符串类型的变量值变更后内存地址发生改变

元组:

>>> a = (‘aa‘,‘bb‘,‘cc‘)

>>> id(a)

2363384788456

>>> a = (‘aa‘,‘bb‘,‘dd‘)

>>> id(a)

2363384789896

结论:元组类型的变量值改变后内存地址发生变化

列表:

>>> a = [‘aa‘,‘bb‘,‘cc‘]

>>> id(a)

2363386243016

>>> a[0] = 11

>>> a

[11, ‘bb‘, ‘cc‘]

>>> id(a)

2363386243016

结论:列表类型的变量值发生变化后内存地址未变更

字典

>>> a = {‘name‘:‘zhangsan‘,‘age‘:‘33‘}

>>> id(a)

2363384325384

>>> a[‘name‘] = ‘lisi‘

>>> a

{‘name‘: ‘lisi‘, ‘age‘: ‘33‘}

>>> id(a)

2363384325384

结论:字典类型的变量值发生变化后内存地址未变更

汇总:当变量值为数字,字符串,元组数据类型时,数值发生变化后内存地址变更,以为着创建了一个新对象。因此不可变数据类型为:数字,字符串,元组。

当变量值为列表,字典数据类型时,数值发生变化后内存地址未变更,以为着变更后依然是在同一个对象,因此可变数据类型为:列表,字典。

原文:https://www.cnblogs.com/yujiashuo/p/9158985.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值