Python--可变类型,不可变类型

众所周知,Python中有很多种类型:

  1. Number 数值类型
  2. Str字符串类型
  3. tuple元祖类型
  4. List列表类型
  5. Dictionary字典类型
  6. Set集合

那么这些类型中,究竟哪些类型属于可变类型,哪些又属于不可变类型呢,接下来,让我们一起来看一看!!!
在这里先给大家推荐一个强大的网页编辑器: http://pythontutor.com/live.html#mode=edit,这个编辑可以清楚地推演出变量的变化过程,接下来让我们先来看看什么是可变类型!!!
可变类型

基础概念:可变数据类型是指变量所指向的内存地址处的值是可以被改变的,也就是说可变类型在赋值的时候copy的是地址或者引用.
属于可变类型的类型: List,Dictionary,Set.
1.List
在这里插入图片描述在这里插入图片描述2.Dictionary
在这里插入图片描述在这里插入图片描述3.Set
在这里插入图片描述在这里插入图片描述
注:以上类型值的改变都是基于内存地址的改变,改变的是内存地址的值.
不可变类型
概念:不可变数据类型在第一次声明赋值声明的时候, 会在内存中开辟一块空间, 用来存放这个变量被赋的值, 而这个变量实际上存储的, 并不是被赋予的这个值, 而是存放这个值所在空间的内存地址, 通过这个地址, 变量就可以在内存中取出数据了. 所谓不可变就是说, 我们不能改变这个数据在内存中的值, 所以当我们改变这个变量的赋值时, 只是在内存中重新开辟了一块空间, 将这一条新的数据存放在这一个新的内存地址里, 而原来的那个变量就不在引用原数据的内存地址而转为引用新数据的内存地址了,相当于改变了变量指向的内存地址.

属于不可变类型的类型: Number ,Str,tuple
1.Number
在这里插入图片描述2.Str
在这里插入图片描述3.tuple
元组类型是一个比较特殊的类型,看下图:
当元组内不存在数组类型时,那么不可变.
在这里插入图片描述当元组内存在数组类型时,那么元组内数组是可变的.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述注:产生这种情况的原因是,元组的最后一个元素内存地址指向的或者说引用的是list,而我们更改值的时候更改的也只是list的内存地址的值,元组其余的元素还是不可变的.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值