当前位置:   article > 正文

python的可变类型和不可变类型_元组的元素只能是不可变类型

元组的元素只能是不可变类型

python中数据类型有可变和不可变两种类型
数字、字符串、元组 是不可变类型
列表、字典 是可变类型
那么可变类型和不可变类型到底有什么区别?
我们可以借用 id() 比较内存地址的变化
可变类型
列表
在这里插入图片描述
列表的元素可变,也就是可以指向其他内存空间,字典同理。
不可变类型
数字
在这里插入图片描述
在经过加一后,变量 i 指向的内存事实上已经改变,也就是说加一操作并不是在原有的 6上加一,而是将 6 拿出来进行加一运算后,又放回去,而分配一个新的堆内存空间给结果 7,并让栈内存中的 i 变量指向 7。
这就体现了不可变类型的不可变性,6 是不可变的。

字符串
在这里插入图片描述
在尝试将字符串 str 中的 ‘H’ 通过赋值更改时,会出现异常,同样体现了不可变性
在这里插入图片描述
和数字加一操作一样,表面上似乎是 ‘Hello’ 发生了改变,事实上并没有,只是 str 的指向改变了

元组中的不可变性就有些不同了
当元组元素都是不可变类型时,体现了一种绝对的不可变性
在这里插入图片描述
当元素有可变类型时,元组发生了变化
在这里插入图片描述
也就是说,tuple 只是强调元素内存空间不变。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/305622
推荐阅读
相关标签
  

闽ICP备14008679号