为什么我不能修改元组的值/内容?

1 投票
2 回答
4617 浏览
提问于 2025-04-18 00:48

假设我创建了一个元组,像这样:

>>> a = (1, 2, 3,)

我想修改它:

>>> a[0] = 10

但是这会导致一个错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

为什么元组不能被修改呢?

2 个回答

0

你可以在这里看到,元组是一种不可变的序列类型。这意味着你不能对它们进行修改。

1

tuples(元组)和 strings(字符串)一样,是不可变的对象,也就是说一旦创建了它们的值就不能再改变。通常你会在需要存储一些不会被修改的值时使用 tuples,比如说常量。如果你需要修改、调整大小或者往 tuple 里添加元素,那就应该使用 lists(列表)了。

你可以这样做:

a = (10, a[1], a[2])

或者使用列表。列表更加灵活,可以对其中的项目进行赋值和编辑。

例如:

>>> a = [1,2,3]
>>> a[0] = 10
>>> a
[10,2,3]

撰写回答