python可变与不可变数据类型

一.名词解释

以下所有的内容都是基于内存地址来说的

  • 不可变数据类型 :
    变量在更改值的时候,需要开辟新内存的⾏为,此数据类型为 “不可变数据类型”,如strings, tuples, 和 numbers
  • 可变数据类型:
    变量在更改值的时候,不需要开辟新内存的⾏为,此数据类型为 “可变数据类型”,如 list,dict

二.不可变数据类型

同一个变量a,改变它的值,会导致这个变量l的内存地址发生改变的行为,那么这个变量a的数据类型被称为“不可变数据类型”

>>> a = 1 # 赋值a=1, 实际上是变量a指向1的内存地址,看到a的内存地址与1的内存地址是一样的
>>> id(1)
4411075632
>>> id(a) # 
4411075632

>>> a = 2  # 更改变量a=2,发现a的内存地址变成了2的内存地址
>>> id(2)
4411075664
>>> id(a)
4411075664

二.可变数据类型

同一个变量a,改变它的值,但这个变量a的内存地址不会变,那么这个变量a的数据类型被称为“可变数据类型”

>>> a = [1, 2, 3, 4]
>>> id(a)
4414889544
>>> a.append(5)
>>> print(a)
[1, 2, 3, 4, 5]
>>> id(a) # 可以看到列表中的值被改变了,但是内存地址没有变化
4414889544
posted @ 2022-05-01 13:57  大切切  阅读(149)  评论(0编辑  收藏  举报