python可变与不可变数据类型
一.名词解释
以下所有的内容都是基于内存地址来说的
- 不可变数据类型 :
变量在更改值的时候,需要开辟新内存的⾏为,此数据类型为 “不可变数据类型”,如strings, tuples, 和 numbers - 可变数据类型:
变量在更改值的时候,不需要开辟新内存的⾏为,此数据类型为 “可变数据类型”,如 list,dict
二.不可变数据类型
同一个变量a,改变它的值,会导致这个变量l的内存地址发生改变的行为,那么这个变量a的数据类型被称为“不可变数据类型”
>>> a = 1 # 赋值a=1, 实际上是变量a指向1的内存地址,看到a的内存地址与1的内存地址是一样的
>>> id(1)
4411075632
>>> id(a) #
4411075632
>>> a = 2 # 更改变量a=2,发现a的内存地址变成了2的内存地址
>>> id(2)
4411075664
>>> id(a)
4411075664
二.可变数据类型
同一个变量a,改变它的值,但这个变量a的内存地址不会变,那么这个变量a的数据类型被称为“可变数据类型”
>>> a = [1, 2, 3, 4]
>>> id(a)
4414889544
>>> a.append(5)
>>> print(a)
[1, 2, 3, 4, 5]
>>> id(a) # 可以看到列表中的值被改变了,但是内存地址没有变化
4414889544
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构