Python 在元组上使用.append,虽然它应该会给出一个错误,但仍然有效。为什么?

Python 在元组上使用.append,虽然它应该会给出一个错误,但仍然有效。为什么?,python,python-3.x,list,tuples,Python,Python 3.x,List,Tuples,我知道tuple是一个不可变的对象,我们不能在它被创建后对其进行更改,但在我的代码中,我应该解释为什么,为什么我可以执行以下代码 t = (1, 's', [] ) t[2].append(-1) print(t) 它输出 (1, 's', [-1]) 所以基本上我改变了元组,它没有给出一个错误 我该如何解释呢?元组很可能是一组内存地址,其中每个地址都是不可变的,当您在元组中获得索引时,它会将内存地址返回给对象(在这种情况下,python会将其从您的视图中隐藏,因此您不必担心它)因此,当您在

我知道tuple是一个不可变的对象,我们不能在它被创建后对其进行更改,但在我的代码中,我应该解释为什么,为什么我可以执行以下代码

t = (1, 's', [] )
t[2].append(-1)
print(t)
它输出

(1, 's', [-1])
所以基本上我改变了元组,它没有给出一个错误
我该如何解释呢?

元组很可能是一组内存地址,其中每个地址都是不可变的,当您在元组中获得索引时,它会将内存地址返回给对象(在这种情况下,python会将其从您的视图中隐藏,因此您不必担心它)因此,当您在列表中添加作为元组中的索引时,您会更改列表,并且不会受到元组不变性的影响

@python\u learner是的,它会回答这个问题。非常感谢