理解python3之可变和不可变数据类型

文章资讯 2020-07-17 00:11:38

理解python3之可变和不可变数据类型

举例说明:
可变类型举例(代码如下):
st1=[1,2,3,4,5]
rint(id(st1))#st1的内存地址
st2=st1
rint(id(st2))#st2的内存地址
st1.move(1)
rint(id(st1),id(st2))#修改值后的st1,st2的内存地址
rint(st2)
运行结果为:
2996623659528
2996623659528
29966236595282996623659528
[2,3,4,5]这里就产生了问题:
为什么st1的值已经赋值给st2了,可是删除了st1中的值,st2还是发生了改变。
解析:
从程序里,我们可以看到,内存地址是一直没有发生改变的,那么可以知道st1和st2共用一个内存地址,意思就是说修改了st1的值那么st2也会改变,并且我们修改了这个内存地址里存储的值之后,地址也没有发生改变那么就能得出这就是可变数据类型的特征。
不可变类型举例(代码如下):
str1="点赞哦"
rint(id(str1))
str1="这次一定"
rint(id(str1))
运行结果为:
1494797054000
1494797054096分析:
和上面对比后是不是变得很清晰,不可变数据类型在重新赋值时,是在内存中重新划分内存地址,而不是在原有基础上进行修改,所以我们叫它不可变数据类型