不可变性

15.3 不可变性

元组创建后不能修改、删除、追加元素,t[0] = 10 会报 TypeError。

不可变意味着更安全:作为字典键、函数默认参数时不会被意外改掉。

若元组里套了列表,列表本身仍可改(元组只保证「引用」不变)。

不能修改元素

# ========================================
# 示例:元组不可变
# 说明:取消注释下一行会 TypeError
# ========================================
t = (1, 2, 3)
# t[0] = 10  # TypeError: 'tuple' object does not support item assignment
print('元组内容', t)

元组内的列表仍可改

# ========================================
# 示例:嵌套可变对象
# 说明:元组存的是引用,列表内容能变
# ========================================
t = (1, [2, 3])
t[1].append(4)   # 列表可以改
print(t)         # (1, [2, 3, 4])