python 中的数据类型根据底层内存机制分为可变和不可变两种。
不可变数据类型: 当该数据类型的对应变量的值发生了改变,那么它对应的内存地址也会发生改变,对于这种数据类型,就称不可变数据类型。
可变数据类型:当该数据类型的对应变量的值发生了改变,那么它对应的内存地址不发生改变,对于这种数据类型,就称可变数据类型。
基本数据类型中可变类型有列表,集合和字典,其他:字符串、整数、浮点数、复数、元组、集合为不可变类型。
直观的体现为,不可变类型数据创建后不能修改,只能重新创建。
通过内建函数 hash 可以对数据进行运算,凡是不可 hash 的都是可变类型,可以 hash 的是不可变类型
hash(1)
1
hash([1,2])
TypeError Traceback (most recent call last)
in
----> 1 hash([1,2])
TypeError: unhashable type: 'list'