2011-10-12 44 views
27

我在python中编写了一个简单的排序程序,并遇到此错误。我想交换列表元素,但它返回一个错误。我附上下面的问题的错误和程序。Python:TypeError:'元组'对象不支持项目分配

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) 
+1

请勿使用单词列表。你能把代码正确地缩进吗? – lc2817

+12

请不要*调用变量“列表”。 “列表”是内建类型。现在你不能将它从一个元组转换为一个具有'list(thing)'的列表。 –

+0

*为什么在世界上*你会使用eval?更简单的解决方案是用','分割,然后去掉多余的空格。 – Dev

回答

43

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

+0

我是python的新手。你能帮我如何将元组转换为列表?或者更好,如何让用户直接输入一个列表? –

+8

要直接输入列表,请用方括号括起序列:“[1,2,3]”。要转换为列表,将它传递给列表构造函数:'L = list(S)'。 –

+0

@JohnConnor:你可能想阅读http://docs.python.org/tutorial/ –

相关问题