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

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

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]

 

相关文章:

  • 2022-12-23
  • 2021-05-30
  • 2021-06-08
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
  • 2021-11-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2023-03-12
  • 2022-12-23
  • 2022-12-23
  • 2021-04-14
  • 2021-06-03
  • 2022-12-23
相关资源
相似解决方案