Python可变数据与不可变数据类型

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

来源:happy_p_

物联沃分享整理
物联沃-IOTWORD物联网 » Python可变数据与不可变数据类型

发表评论