我正在尝试更改元组,但它一直给我这个错误:
Traceback (most recent call last):
File "main.py", line 2, in <module>
my_tuple[1] = 'y'
TypeError: 'tuple' object does not support item assignment
我的密码是:
my_tuple = (1,2,3,4,5)
my_tuple[1] = 'y'
print(my_tuple)
在列表中,您可以向列表的任何元素写入新值。
在元组中,你不能。
元组的这个属性,“不变性”,使它们能够以不同于列表的方式使用,有时更有效。
也许你最好列个清单?
元组是 Python 中的不可变对象,这意味着它们一旦创建就无法修改其内容。如果您尝试通过更改其值或添加或删除元素来修改元组,您将收到 TypeError。
例如,考虑以下代码片段:
my_tuple = (1, 2, 3) 我的元组[0] = 4
元组是不可变的,如果你想改变你可以转换为列表然后返回元组:
my_tuple = (1,2,3,4,5)
l=list(my_tuple)
l[1]='y'
my_tuple=tuple(l)
#(1, 'y', 3, 4, 5)
元组是不可变的有序和索引对象集合。两个或多个项目的元组由逗号分隔的表达式列表组成。一个项目的元组(“单例”)可以通过将逗号附加到表达式来形成(表达式本身不会创建元组,因为括号必须可用于表达式的分组)。一个空元组可以由一对空括号组成。
https://python-reference.readthedocs.io/en/latest/docs/tuple/
元组虽然比列表快,但不能修改。 将其转换回列表,修改并设置回元组会更方便。
my_list=list(my_tuple)
my_list[1]='y'
my_tuple=tuple(my_list)
您不能更改现有的元组。唯一的解决方案是创建一个新的元组实例。
如果可以接受,您可以执行以下操作:
my_tuple = (1,2,3,4,5)
my_tuple = tuple('y' if i == 1 else x for i,x in enumerate(my_tuple))
print(my_tuple)
因为元组是常量,所以可以用列表代替元组 像这样
my_tuple = [1,2,3,4,5]
my_tuple[1] = 'y'
print(my_tuple)
您可以查看此链接以获取更多信息 https://www.w3schools.com/python/python_tuples.asp
你不能在 python 中更改元组中的项目,元组是不可变的。 如果您想在创建变量后更改项目,您可以更好地使用这样的列表:
my_list = [1,2,3,4,5]
my_list[1] = 'y'
print(my_list)