首先看关于元组的两个定义:
1.元组一旦被创建,它的元素就不可更改。
2.元组中可以包括存储列表、元组等在内的任何类型的数据。
也就是说,一个不可变的元组里存了一个可变的列表。
元组的不可变是指每个元素的地址不可变,修改列表内容时,列表地址不会发生变化。
但当试图将列表替换为一个常量或字符串或另一个列表,元组就会出现问题。
tup = (1,2,"3",[1,2])
# 给元组中的列表添加一个88是可行的
tup[3].append(88)
# 下面这步操作则不能正常运行
tup[3] = 88
元组中存储的是对象的引用,
如果元组中对象本身是不可变对象,则不能再引用其它对象,
如果元组中的对象是可变对象(list等),则可变对象的引用不允许改变,但数据可以改变。