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

python数据类型分别有整数int / 浮点数float / 布尔值bool / 元组tuple / 列表list / 字典dict,其中数据类型分为两个大类,一种是可变数据类型;一种是不可变数据类型

在python编程的时候,代码中的变量实际上都是存储在计算机内存中,通过python内置函数id(),可以用于获取内存地址!

可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址不发生改变,那么这个数据类型就是 可变数据类型。

不可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址发生了改变,那么这个数据类型就是 不可变数据类型。

总结:可变数据类型更改值后,内存地址不发生改变;不可变数据类型更改值后,内存地址发生改变。

python的数据类型中:
不可变数据类型:数值类型(intfloatbool)、string(字符串)、tuple(元组)
可变数据类型:list(列表)、dict(字典)

不可变数据类型示例:

复制代码
# 整型变量
a = 10
print("整形变量a修改之前地址:{}".format(id(a)))
a = 20
print("整形变量a修改之后地址:{}".format(id(a)))
print("***" * 20)
 
# 浮点数变量
a = 10.5
print("浮点数变量a修改之前地址:{}".format(id(a)))
a = 20.2
print("浮点数变量a修改之后地址:{}".format(id(a)))
print("***" * 20)
 
# 字符串变量
a = "hello"
print("字符串变量a修改之前地址:{}".format(id(a)))
a = "world"
print("字符串变量a修改之后地址:{}".format(id(a)))
print("***" * 20)
 
# 布尔值变量
a = False
print("布尔值a修改之前地址:{}".format(id(a)))
a = True
print("布尔值a修改之后地址:{}".format(id(a)))
print("***" * 20)
 
# 元组的数据不能修改,否则会报错
 
 
==========输出结果============
整形变量a修改之前地址:4401587904
整形变量a修改之后地址:4401588224
************************************************************
浮点数变量a修改之前地址:4541338944
浮点数变量a修改之后地址:4541338968
************************************************************
字符串变量a修改之前地址:4404281896
字符串变量a修改之后地址:4404282232
************************************************************
布尔值a修改之前地址:4401185168
布尔值a修改之后地址:4401184224
************************************************************
复制代码

可变数据类型示例

复制代码
#列表
a = list()
print("列表a修改之前地址:{}".format(id(a)))
a.append(20)
print("列表a修改之后地址:{}".format(id(a)))
a.append(False)
print("列表a修改之后地址:{}".format(id(a)))
a.append("hello")
print("列表a修改之后地址:{}".format(id(a)))
print("***"*20)
 
#字典
a = dict()
print("字典a修改之前地址:{}".format(id(a)))
a["name"]="zhangsan"
print("字典a修改之后地址:{}".format(id(a)))
a["age"]=18
print("字典a修改之后地址:{}".format(id(a)))
a["sing_dog"]=True
print("字典a修改之后地址:{}".format(id(a)))
print("***"*20)
 
 
 
========输出结果=======
列表a修改之前地址:4351201352
列表a修改之后地址:4351201352
列表a修改之后地址:4351201352
列表a修改之后地址:4351201352
************************************************************
字典a修改之前地址:4349994904
字典a修改之后地址:4349994904
字典a修改之后地址:4349994904
字典a修改之后地址:4349994904
************************************************************
复制代码

 


————————————————
版权声明:本文为CSDN博主「loveysuxin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/LOVEYSUXIN/article/details/127986901

posted @   徐俊112  阅读(420)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示