Python的可变数据类型有列表和字典,不可变数据类型有整型(int),浮点型(float),字符串型(String)和元组型(tuple).
不可变数据类型的不可变指的是变量引用的地址处的值是不可变的。例如int类型,改变该类型变量的值,实际是改变了该变量引用的地址值,即改变了该变量引用的队像,并没有改变之前引用的队像的值。不可变数据类型的优点是,不管内存中有多少个引用,相同的对象只占用一块内存;缺点是当对变量进行运算从而改变变量的值时,由于是不可变数据类型,所以需要创建新对象,不断的改变就会不断的创建新对象。但是不再使用的变量会被垃圾回收器回收。
可变数据类型,具有同样值的对象是不同的对象,即在内存中保存了多个同样值的对象,地址值不同。可变数据类型的对象,当值发生改变时,并不会创建新的对象,只是改变了原地址的值,扩充了原地址的内容,但是并不会改变原地址的地址值。但是对于可变数据类型赋值操作是会改变该变量的地址值的。