python 可变数据类型和不可变数据类型
python数据类型分别有整数int / 浮点数float / 布尔值bool / 元组tuple / 列表list / 字典dict,其中数据类型分为两个大类,一种是可变数据类型;一种是不可变数据类型
在python编程的时候,代码中的变量实际上都是存储在计算机内存中,通过python内置函数id(),可以用于获取内存地址!
可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址不发生改变,那么这个数据类型就是 可变数据类型。
不可变数据类型:当该数据类型对应的变量的值发生了变化时,如果它对应的内存地址发生了改变,那么这个数据类型就是 不可变数据类型。
总结:可变数据类型更改值后,内存地址不发生改变;不可变数据类型更改值后,内存地址发生改变。
python的数据类型中: 不可变数据类型:数值类型(int、float、bool)、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