这是我要解决的问题代码的非常简化的版本。
我尝试使用print(x)调试代码。但是我不明白为什么世界上[6,1]会反复添加到攻击坐标后面。任何帮助将不胜感激,因为它的黄金重量。
obstaclecoordinates=[]
coordinatesofattack=[]
n=5
x=[1,1]
while x not in obstaclecoordinates:
coordinatesofattack.append(x)
x[0]+=1
print(x)
if x[0]>n:
break
else:
continue
print(coordinatesofattack)
期望的输出:[[1,1],[2,1],[3,1],[4,1],[5,1],[6,1]]
实际输出:[[6,1],[6,1],[6,1],[6,1],[6,1]]
答案 0 :(得分:2)
如评论中所述,您不断修改添加的列表。您需要在while循环中创建一个副本。
obstaclecoordinates=[]
coordinatesofattack=[]
n=5
x=[1,1]
while x not in obstaclecoordinates:
coordinatesofattack.append(x[:])
x[0]+=1
print(x)
if x[0]>n:
break
else:
continue
print(coordinatesofattack)