全国咨询/投诉热线:400-618-4000

Python中的可变和不可变数据类型详解【软件测试培训】

更新时间:2019年10月09日15时07分 来源:传智播客 浏览次数:

Python中的可变和不可变数据类型的分类依据, 指的是保存数据的源内存空间的数据是否允许修改。

1. 不可变数据类型

源内存空间中数据不允许修改, 如果想要修改, 只能开辟新内存空间,让变量引用指向新内存空间数据的地址。

包括: int (整数类型) float (浮点数类型) bool (布尔类型) str (字符串类型) tuple(元组类型)。

比如: 下面以float 浮点数类型为例。

python数据类型1

上述图示中可以清楚的看出, float是不可变数据类型, 其修改数据前后的引用数据的id()地址值发生了变化。

再比如: 我们以元组为例, 说明元组也是不可变的数据类型。

python数据类型2

可以看出, 对元组使用+=操作时,元组的前后数据改变了, 而且引用数据的地址也发生了改变,元组原来内存空间中的数据不允许修改, 所以,元组是不可变数据类型。

再比如: 下边以字符串为例, 证明字符串也是不可变数据类型。

从上面的图示可以很清晰的看出, 修改数据的前后, 字符串引用数据的地址发生了变化, 原内存空间的数据不允许修改, 因此字符串是不可变数据类型。

python数据类型3


因此可以得出结论, 不可变数据类型, 变量引用原内存空间中数据不允许修改, 如果想要修改, 只能开辟新内存空间,让变量引用指向新内存空间数据的地址。【推荐了解软件测试培训课程

2. 可变数据类型

概念: 源内存空间中的数据可以修改不需要开辟新内存空间,只要在源内存基础上修改数据。

包括: list(列表类型) dict(字典类型) set(集合类型)。

比如: 下面以列表为例, 说明列表是可变数据类型。

python数据类型4

从上面的图示中可以看出, 对列表进行操作, 添加数据300后, 前后并没有重新开辟内存空间, 而是在原内存基础上添加的数据, 所以 列表是可变数据类型。

再比如: 以下是字典的图示, 展示字典也是可变数据类型。

python数据类型5

从上面的图示可以看出, 修改字典数据前后, 其中引用数据的地址, 并没有发生改变, 并没有开辟新的内存空间, 而是在原内存基础上修改的数据, 因此字典是可变数据类型。

再比如: 下边的集合的使用, 说明集合也是不可变数据类型。

python数据类型6

从上面的图示可以查看出, 对集合中添加数据前后, 其集合变量的引用地址并没有发生变化, 因此集合是可变数据类型。

因此从上面的图示得出结论,源内存空间中的数据可以修改,不需要开辟新内存空间,只要在源内存基础上修改数据, 这样的数据类型 就是可变数据类型。

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

uids

北京校区

    14天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    15天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    8天免费试学

    基础班入门课程限时免费

    申请试学名额

    20天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    0天免费试学

    基础班入门课程限时免费

    申请试学名额

    12天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    5天免费试学

    基础班入门课程限时免费

    申请试学名额

    10天免费试学

    基础班入门课程限时免费

    申请试学名额