python数据分为可变类型和不可变类型,其中:
可变类型:列表,字典
不可变类型:布尔值,数字,字符串,元组
specidal:集合作为set是可变的,而作为frozenset是不可变集合
可变类型和不可变类型划分的依据就在于对一数据类型进行增删修改后是否还是指向同一内存地址。以列表和字符串为例:
>>> lis = [1, 2, 3]
>>> id(lis)
2108634448008
>>> lis.append(4)
>>> id(lis)
2108634448008
若对一数据类型进行增删修改后还是指向同一内存地址,则为可变类型,上面列表增加元素而内存地址不变,说明列表是可变类型。
>>> s = 'hello'
>>> id(s)
2108634478272
>>> s += ', world'
>>> s
'hello, world'
>>> id(s)
2108634546864
若对一数据类型进行增删修改后内存地址也改变,则为不可变类型,上面字符串增加新的字符而内存地址改变,说明字符串是不可变类型。