TypeError: “ tuple”对象在交换值时不支持项分配

我正在用 python 编写一个简单的排序程序,遇到了这个错误。我想交换列表元素,但它返回一个错误。我附上的错误和程序在下面的问题。

list[i+1] = list[i]
TypeError: 'tuple' object does not support item assignment

密码:

def my_sort(list):
for index in range(1,len(list)):
value=list[index]
i=index-1
while i>=0:
if value<list[i]:
list[i+1] = list[i]
list[i]=value
i=i-1
else:
break
return


input_list=eval(input("Enter list items"))
my_sort(input_list)
print(input_list)
221287 次浏览

计算“1,2,3”的结果是 (1, 2, 3),一个 tuple。正如您所发现的,元组是不可变的。在处理之前转换为一个列表。

或者简单地分配整个 tuple 本身,而不是更改 tuple 内部的元素。

示例: 希望将“ count”添加到“ i-th”元组的第一个元素:

tup[i] = (tup[i][0] + count, tup[i][1])

对于任何搜索此错误的人,请检查代码中是否有不需要的逗号。 比如说,

arr = np.zeros(n),
arr[i] = something

将抛出此错误。