欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python的不可变数据类型和可变数据类型的区别详解

程序员文章站 2022-03-15 15:09:37
不可变数据类型和可变数据类型的区别不可变数据类型不可变数据类型immutable:一般为基本数据类型,仅存储一个数值的数据类型,元组例外,如 int、long、float、string、元组,当创建一个变量时,变量内存储了指向值的地址,该地址处的值不会发生改变,当对变量重新赋值时,实际上是变量内的地址发生了改变。例如创建a = 1,a内存储的地址指向1,令b = a,b中存储和a相同的地址。当重新赋值a = 0,a内存储的地址发生变化指向0,而b的地址不变所以值依然为1:可变数据类型可变...

不可变数据类型和可变数据类型的区别

不可变数据类型

  • 不可变数据类型immutable:一般为基本数据类型,仅存储一个数值的数据类型,元组例外,如 int、long、float、string、元组,当创建一个变量时,变量内存储了指向值的地址,该地址处的值不会发生改变,当对变量重新赋值时,实际上是变量内的地址发生了改变。
    例如创建a = 1,a内存储的地址指向1,令b = a,b中存储和a相同的地址。python的不可变数据类型和可变数据类型的区别详解

当重新赋值a = 0,a内存储的地址发生变化指向0,而b的地址不变所以值依然为1:
python的不可变数据类型和可变数据类型的区别详解

可变数据类型

  • 可变数据类型mutable:一般为结构数据类型,如 字典、列表、集合,创建一个变量后,变量保存了指向值的地址,允许对该地址处的值进行修改,注意的是修改操作需要用变量自带的方法,重新赋值操作依然为改变地址。
    例如创建a = [1,2],a内存储的地址指向[1,2],令b = a,b中存储和a相同的地址。python的不可变数据类型和可变数据类型的区别详解
    当对值[1,2]进行修改时,如a[0] = 3,此时a存储的地址没有发生改变,因此a、b同时变为[3,2]python的不可变数据类型和可变数据类型的区别详解
    如果对变量进行重赋值操作,就不是对原有的值进行修改了,而是创建新的对象,变量中存储的地址会发生改变,例如对a=[1,2]中的1修改为3的操作,变为重赋值a = [3,2],那么就和不可变数据类型的赋值操作相同了,b和a不再相同。
    python的不可变数据类型和可变数据类型的区别详解

本文地址:https://blog.csdn.net/qq_43474959/article/details/109616928