python 的数据类型主要分为两类:
不可变数据类型
: 当该数据类型对应的变量的值发生了变化时,它对应的内存地址发生了改变
。可变数据类型
: 当该数据类型对应的变量的值发生了变化时,它对应的内存地址不发生改变
;
不可变数据类型
Number
(数值), bool
是 Number
的子类型;String
(字符串);Tuple
(元组)。
可变数据类型
Set
(集合);List
(列表);Dictionary
(字典)。
str1 = 'abc'
print(id(str1))
str1 = 'cba'
print(id(str1))
dict1 = {
"name": "zs",
}
print(id(dict1))
dict1["age"] = 20
print(id(dict1))
dict1 = {
"name": "zs",
"age": 20
}
print(id(dict1))
结论
- 如果变量重新赋值,它对应的内存地址都会改变,所以说
变量的值发生了变化
,是指 容器模型(可包含其他对象的对象)
修改自身内部的值,此时它的内存地址不会出现变化。则它是可变数据类型
,这个可变更多是指容器类型的值可以修改,而不是指变量重新赋值。 - 其中比较特殊的是
Tuple
,它虽然是容器模型
,但它刚出现,就被固定,容器内部的值不可修改,所以它属于 不可变数据类型
。