元组的相对不可变性
元组与多数 Python 集合(列表、字典、集,等等)一样,保存的是对象 的引用。 如果引用的元素是可变的,即便元组本身不可变,元素依然 可变。也就是说,元组的不可变性其实是指 tuple 数据结构的物理内 1容(即保存的引用)不可变,与引用的对象无关。
>>> t1 = (1, 2, [30, 40])
>>> t2 = (1, 2, [30, 40])
>>> t1 == t2 True >>> id(t1[-1]) 4302515784 >>> t1[-1].append(99) >>> t1 (1, 2, [30, 40, 99]) >>> id(t1[-1]) 4302515784 >>> t1 == t2 False
人生就是要不断折腾