TypeError:'int'对象不是可下载的,在循环中添加到元组中

问题描述:

此代码是较大pygame程序的一部分,用于向下降小行星的Y值加1。它首先用y值= 2打印列表中的项目,但在第二个循环中,我收到错误消息。TypeError:'int'对象不是可下载的,在循环中添加到元组中

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) 

在第二次迭代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)] 
. 
. 
. 
. 
+0

谢谢,这帮助了很多! –