python中的数据类型可分为6类:
1. Number(数字) (bool布尔类型、int整型、float浮点型、complex复数等都归为Number数字类型)
2. String(字符串)
3. Tuple (元组)
4. List(列表)
5. Dictionary (字典)
6. Sets(集合)
其中不可变类型为number、string、tuple,可变类型为:list、dict、set
1 不可变数据类型
不可变类型的变量在第一次赋值声明的时候,会在内存中开辟一块空间,用来存储这个变量被赋予的值,变量被声明后,变量的值就与开辟的内存空间绑定,我们不能修改存储在内存中的值,当我们想给此变量赋新值时,会开辟一块新的内存空间保存新的值。
不可变数据类型的值变化,地址也会变。
# int 整型
a = 10
print(a, id(a)) # 10 1798725266000
a = 100
print(a, id(a)) # 100 1798725457360
# string 字符串
str = 'abc'
print(str, id(str)) # abc 1798730526000
str = 'abcdef'
print(str, id(str)) # abcdef 1798841054256
2 可变数据类型
可变类型的变量在第一次赋值声明的时候,也会在内存中开辟一块空间,用来存储这个变量被赋予的值。我们能修改存储在内存中的值,当该变量的值发生了改变,它对应的内存地址不发生改变。
可变数据类型变量中的值变化,地址不会变。若对变量进行重新赋值,则变量的地址也会改变。
list = [1, 2, 3, 4]
print(list, id(list)) # [1, 2, 3, 4] 1798841047552
list[1] = 10
print(list, id(list)) # [1, 10, 3, 4] 1798841047552
list = [5, 6, 7, 8]
print(list, id(list)) # [5, 6, 7, 8] 1798829485184