TypeError:'int'对象不可订阅,添加到循环中的元组

时间:2016-11-09 11:07:13

标签: python-3.x pygame

此代码是更大的pygame程序的一部分,这用于将1添加到坠落小行星的Y值。它首先使用y值= 2的列表中的项打印正确答案,但在第二个循环中,我收到错误消息。

GeneratedX = []
x = (200,1)
y = (168,1)
GeneratedX.append(x)
GeneratedX.append(y)
i = True
while i == True:
    for current in GeneratedX:
        GeneratedX = (current[0],current[1] + 1)
        print(GeneratedX)

1 个答案:

答案 0 :(得分:0)

在第二次迭代中GeneratedX不再是元组列表,而是元组
GeneratedX = (current[0],current[1] + 1))。

这就是currentintcurrent[0]提升TypeError的原因。

一个可能的解决方案是以下列方式使用enumerate

for i, current in enumerate(GeneratedX):
    GeneratedX[i] = (current[0], current[1] + 1)

与其余代码输出一起使用时:

[(200, 2), (168, 1)]
[(200, 2), (168, 2)]
[(200, 3), (168, 2)]
[(200, 3), (168, 3)]
[(200, 4), (168, 3)]
[(200, 4), (168, 4)]
[(200, 5), (168, 4)]
[(200, 5), (168, 5)]
[(200, 6), (168, 5)]
.
.
.
.