关于python:根据内容,可以将元组视为可变和不可变

Can tuple be considered both as mutable and immutable based on content

本问题已经有最佳答案,请猛点这里访问。

我正在阅读python语言参考,遇到了以下问题:

when we talk about the mutability of a container, only the identities
of the immediately contained objects are implied. So, if an immutable
container (like a tuple) contains a reference to a mutable object, its
value changes if that mutable object is changed.

我认为元组可以根据它所包含的内容同时被认为是可变的和不可变的,对吗?例如,如果一个元组只包含字符串,那么它可以是不可变的;如果它包含至少一个可变引用,比如list,那么这个元组本身就是可变的as。


所有的tuple都包含一个固定的引用列表。这些引用不能更改,因此这使得tuple不可变。被引用对象是否可变是另一回事,但这超出了tuple的范围,因此如果引用可变对象,tuple可能是可变的,这是不准确的。


Am I correct in thinking that tuple can be both mutable and immutable
based the things it contains?

考虑到这样一个事实,即元组包含一个具有明确标识符的固定大小的对象。这些对象都不能替换为其他对象。但这并不意味着对象的内容不能更改。

技术上讲,如果

t=(o1,o2,o3。on,其中o1through onare certain objects and through out the lifetime of the tuple T,You cannot replace one or more of these objects oiwith some other objects oj.where i<>j.but oican mutate.


这通常不是概念化的方式。元组始终是不可变的;它包含的对象可能是可变的,也可能不是可变的。同样,如果你有一个防火盒,你把纸放在里面,即使纸没有,盒子仍然是防火的(因此整个盒子纸组合可以被认为是非防火的)。