PHP前端开发

python不可变数据类型有哪些

百变鹏仔 1个月前 (01-23) #Python
文章标签 数据类型

python不可变数据类型有哪些?

在Python中不可变的数据类型有3种,分别是整型、字符串和元组。

整型

a = 1print(id(a),type(a))a = 2print(id(a),type(a))1912499232 <class>1912499264 <class></class></class>

我们可以发现,当数据发生改变后,变量的内存地址发生了改变,那么整型就是不可变数据类型。

立即学习“Python免费学习笔记(深入)”;

字符串

b = 'djx'print(id(b),type(b))b = 'djx1996'print(id(b),type(b))535056476344 <class>535056476624 <class></class></class>

我们可以发现,当数据发生改变后,变量的内存地址发生了改变,那么字符串就是不可变数据类型。

元组

元组被称为只读列表,即数据可以被查询,但不能被修改,但是我们可以在元组的元素中存放一个列表,通过更改列表的值来查看元组是属于可变还是不可变。

c1 = ['1','2']c = (1,2,c1)print(c,id(c),type(c))c1[1] = 'djx'print(c,id(c),type(c))result:(1, 2, ['1', '2']) 386030735432 <class>(1, 2, ['1', 'djx']) 386030735432 <class></class></class>

我们可以发现,虽然元组数据发生改变,但是内存地址没有发生了改变,但是我们不可以以此来判定元组就是可变数据类型。我们回头仔细想想元组的定义就是不可变的。我们修改了元组中列表的值,但是因为列表是可变数据类型,所以虽然在列表中更改了值,但是列表的地址没有改变,列表在元组中的地址的值没有改变,所以也就意味着元组没有发生变化。我们就可以认为元组是不可变数据类型,因为元组是不可变的。