在Python中,数据类型可以根据它们是否可以在赋值后改变其值而被分类为可变类型(mutable)和不可变类型(immutable)。这两者的主要区别在于它们对内存中的数据的处理方式以及它们在赋值、函数参数传递和作为容器元素时的行为。
不可变类型(Immutable Types)
不可变类型指的是在创建后其内容不能被改变的数据类型。Python中的不可变类型包括整数(int)、浮点数(float)、复数(complex)、字符串(str)和元组(tuple)。一旦你创建了一个不可变类型的对象,你就不能再改变它。如果你尝试去改变它,Python实际上会创建这个对象的一个新的副本,然后在这个新的副本上进行修改。
例如,字符串是不可变的。当你执行以下操作时:
s = "hello" |
|
s = s + " world" |
你并没有改变原始的字符串"hello"
,而是创建了一个新的字符串"hello world"
,并将变量s
指向了这个新的字符串。
可变类型(Mutable Types)
可变类型指的是在创建后其内容可以被改变的数据类型。Python中的可变类型包括列表(list)、字典(dict)和集合(set)。这些类型的对象在被创建后,你可以修改其内容(添加、删除或更改元素)。
例如,列表是可变的。你可以这样做:
lst = [1, 2, 3] |
|
lst[0] = 4 # 改变了列表的第一个元素 |
|