元组与多数Python集合(列表、字典、集)一样,保存的是对象的引用。如果引用的元素是可变的,即便元组本身不可变,元素依然可变。也就是说,元组的不可变性其实是指tuple数据结构的物理内容(即保存的引用)不可变,与引用的对象无关。

虽然t1和t2是不同的对象,但是二者相等。

查看t1[-1]列表的标识。

就地修改t1[-1]列表。

t1[-1]的标识没变,只是值变了。

现在t1和t2不相等了。
本文探讨了Python中元组的特性,特别是当元组包含可变类型(如列表)时的行为。解释了尽管元组自身不可变,但其内部的可变元素仍然可以更改,这会导致两个之前相等的元组变得不等。
元组与多数Python集合(列表、字典、集)一样,保存的是对象的引用。如果引用的元素是可变的,即便元组本身不可变,元素依然可变。也就是说,元组的不可变性其实是指tuple数据结构的物理内容(即保存的引用)不可变,与引用的对象无关。

虽然t1和t2是不同的对象,但是二者相等。

查看t1[-1]列表的标识。

就地修改t1[-1]列表。

t1[-1]的标识没变,只是值变了。

现在t1和t2不相等了。
295
5519

被折叠的 条评论
为什么被折叠?