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

Joh*_*nor 54 python

我在python中编写一个简单的排序程序并遇到此错误.我想交换列表元素,但它返回错误.我正在附上下面的错误和程序.

list[i+1] = list[i]
TypeError: 'tuple' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)

码:

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)
Run Code Online (Sandbox Code Playgroud)

Ign*_*ams 73

评估"1,2,3"导致(1, 2, 3),a tuple.正如您所发现的,元组是不可变的.在处理之前转换为列表.

  • 要直接输入列表,请用方括号括起序列:"[1,2,3]".要转换为列表,请将其传递给列表构造函数:`L = list(S)`. (11认同)
  • 我是python的新手。你能帮我如何将元组转换为列表吗?或者更好的是,如何让用户直接输入列表? (4认同)
  • 答案中最后缺少的部分是在处理列表之后用“S = tuple(L)”将其转换回来 (2认同)

erp*_*ing 8

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

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

tup[i] = (tup[i][0] + count, tup[i][1])
Run Code Online (Sandbox Code Playgroud)