6. 可变不可变类型

一:可变不可变类型

可变类型:

  • 值改变,id不变,证明改的是原值,证明原值是可以被改变的

不可变类型:

  • 值改变,id也改变了,证明是产生新的值,压根没有改变原值,证明原值是不可改变的

二:验证

1. int是不可变类型

x = 10
print(id(x))
x = 20       # 产生新值
print(id(x))

1646651456
1646651616

2. float是不可变类型

x = 10.1
print(id(x))
x = 20.1
print(id(x))

21905056
21902576

3. str是不可变类型

x = 'xxq'
print(id(x))
x = 'zsy'
print(id(x))

59860800
59862464

小结:

  • int、float、str在Python中都被设计成了不可分割的整体,不能够被改变

4. list是可变类型

  • 列表本身的内存地址是不变的,但是列表里面的存的值的内存地址变了

  • 改变的是元素地址(换汤不换药)

  • 值改变,id(内存地址)不变

l = ['aaa','bbb','ccc']
print(id(l))
l = ['xxx','yyy','zzz']
print(id(l))

l = ['aaa','bbb','ccc']
print(id(l))
l[0] = 'AAA'
print(id(l))

5. dict是可变类型

  • 值改变,id(内存地址)不变
dic = {'k1':111,"k2":222}
print(id(dic))
dic['k1'] = 333
print(id(dic))
字典补充:
定义:
  • {}内用逗号隔开多个 key : value
  • 其中 value可以是任意类型,但是 key必须是不可变类型
dic={
'k1':111,
'k2':3.1,
'k3':[333,],
'k4':{'name':'egon'}
}

dic={
2222:111,
3.3:3.1,
'k3':[333,],
'k4':{'name':'egon'}
}
print(dic[3.3])

dic={[1,2,3]:33333333}     # 报错,key必须是不可变类型
dic={{'a.txt':1}:33333333}     # 报错,key必须是不可变类型

6. bool不可变

True就是True

False就是False

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值