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
有人知道我的代码中需要更改的内容吗?
答案 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])
(请注意,此处timestable
从range
开始):
0