类型错误:'tuple'对象不支持交换值时的项目赋值

86 投票
3 回答
261239 浏览
提问于 2025-04-17 04:08

我正在用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)

3 个回答

4

如果你在网上搜索这个错误,记得检查一下你的代码里有没有多余的逗号。

比如说,

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

这样就会出现这个错误。

8

或者直接把整个元组赋值,而不是去改变元组里面的某个元素。

举个例子:如果你想把'count'加到第'i'个元组的第一个元素上:

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

把"1,2,3"这个东西评估一下,结果会得到(1, 2, 3),这是一种叫做tuple的东西。正如你发现的,元组是不能改变的。在处理之前,先把它转换成列表。

撰写回答