TypeError:交换值时,'tuple'对象不支持项目赋值

时间:2011-10-12 05:52:35

标签: python

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

2 个答案:

答案 0 :(得分:64)

评估“1,2,3”会产生(1, 2, 3)tuple。正如您所发现的,元组是不可变的。在处理之前转换为列表。

答案 1 :(得分:0)

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

示例:想要将 'count' 添加到 'i-th' 元组的第一个元素:

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