元组真的能被修改吗?

我们知道在 Python 中元组是不能被修改的但是真的是这样吗?

我们来看一段代码:

a = (1, [2,3,4], 3,4)
a[1].append(5)
a
(1, [2, 3, 4, 5], 3, 4)

可以看到元组中的列表被修改了,这是为什么呢??我们先来看一波内存分析:

元组真的能被修改吗?_第1张图片
内存分析

从上面的内存分析中可以看出:

  • 元组名 a 指向了一个 tuple 对象
  • 元组的第二项指向了一个 list 对象,我们在平时说的元组不能被修改实际上是说它指向的内存不能被修改,但是我们可以修改内存中的值,就像上面的例子那样,

你可能感兴趣的:(元组真的能被修改吗?)