在 Python 中,元组是不可变序列,那为什么当元组中的元素是可变序列时(如 list、dict)可进行增删的操作?

在定义一个元组时,Python内部会为元组中的每一个元素分配一个内存地址,当我们更改这个列表时,
只是更改了这个列表中的内容,但是这个元组的元素所指向的内存地址是没有被更改的,也就没有违背不可变序列的要求
所以是可以进行增删操作的。示例代码如下

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
In [35]: tup = ([1,2],2)

In [36]: [id(i) for i in tup]
Out[36]: [2056970648264, 1724785392]

In [37]: tup[0].append(1)

In [38]: tup[0]
Out[38]: [1, 2, 1]

In [39]: [id(i) for i in tup]
Out[39]: [2056970648264, 1724785392]

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄