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
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值