Python笔记之元组的相对不可变性

元组的相对不可变性

元组与多数Python集合(列表, 字典, 集,等待)一样,保存的是对象的引用。如果引用的元素是可变的,即元组本身不可变,元素依然可变。也就是说,元组的不可变性其实是指的是tuple数据结构的物理内容(即保存的引用)不可变,与引用的对象无关。

如示例1表明,元组的值会随着引用的可变对象的变化而变。元组中不可变的是元素发标识。

#示例1
>>> t1 = (1, 2, [30, 40])   #t1不可变,但是t1[-1]可变。
>>> t2 = (1, 2, [30, 40])   #构建元组t2,它的元素与t1一样。
>>> t1 == t2                #虽然t1和t2是不同的对象,但是二者相等——与预期相符。
True
>>> id(t1[-1])              #查看t1[-1]列表的标识。
1631417819656
>>> t1[-1].append(99)       #就地修改t1[-1]列表。
>>> t1
(1, 2, [30, 40, 99])
>>> id(t1[-1])              #t1[-1]的标识没变,只是值变了。
1631417819656
>>> t1 == t2                #现在,t1和t2不相等。
False

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值