Python元组的不可变性和可变性

2023-03-20 00:00:00 python 变性 可变性

Python 元组是不可变的数据类型,这意味着一旦创建了元组,其中的元素就不能被修改。这与 Python 中的列表是不同的,列表是可变的数据类型,可以通过索引、切片等方式修改其中的元素。

当我们尝试修改元组中的元素时,会触发 TypeError 异常。例如:

# 创建元组
my_tuple = (1, 2, 3)

# 尝试修改元组
my_tuple[0] = 4  # TypeError: 'tuple' object does not support item assignment

在上面的示例中,我们创建了一个包含整数 1、2、3 的元组,并尝试修改其中的第一个元素。由于元组是不可变的,所以触发了 TypeError 异常。

需要注意的是,虽然元组本身不可变,但是如果元组中的元素是可变的数据类型(例如列表),那么这些元素可以被修改。例如:

# 创建包含列表的元组
my_tuple = ([1, 2], [3, 4])

# 修改元组中的列表元素
my_tuple[0][0] = 5

# 输出元组
print(my_tuple)  # 输出:([5, 2], [3, 4])

在上面的示例中,我们创建了一个包含两个列表的元组,并修改了其中第一个列表的第一个元素。由于列表是可变的,所以这个操作是有效的。

总的来说,Python 元组的不可变性意味着我们不能修改元组中的元素,但是元组中的可变元素是可以被修改的。

相关文章