错误消息TypeError:'int'对象不支持项目分配

时间:2015-08-18 10:59:09

标签: python-3.x

factor = int(input("Which table would you like: "))  
timestable = ([0,0])  
for count in range(1,13):  
    timestable.append([0,0])  
    result = factor * count  
    timestable[count][0] = count  
    timestable [count][1] = result  
for row in timestable:  
    print(row)  

这是一个程序,允许用户输入时间表并打印1 *数字到12 *数字。但每当我运行代码时,我都会收到以下错误消息:

timestable[count][0] = count    
TypeError: 'int' object does not support item assignment  

有人知道我的代码中需要更改的内容吗?

1 个答案:

答案 0 :(得分:0)

正如评论中所述,问题是行timestable = ([0,0])timestable初始化为[0, 0]。因此,在您的第一个append后,timestable看起来像这样:[0, 0, [0, 0]]而不是[[0, 0], [0, 0]]timestable[count]后面的值不是新附加的{{1}但只是初始化中的第二个[0,0]

也许你想创建一个包含列表的单元组,但是你必须使用0(注意尾随的逗号),但这对你没有任何好处,要么,因为你不能附加元组。相反,您应该将其初始化为嵌套列表。此外,您可以通过不首先附加零然后覆盖这些零来缩短循环体,但直接附加正确的值。

([0,0],)

但是,您根本不需要单独的初始化和循环;您只需在单个列表理解中创建timestable = [[0,0]] for count in range(1, 13): timestable.append([count, factor * count]) (请注意,此处timestablerange开始):

0