【问题标题】:Is there a way to have a different list element for each loop?有没有办法为每个循环使用不同的列表元素?
【发布时间】:2019-04-21 17:19:23
【问题描述】:

我希望每个坐标都有不同的图片。现在它所做的只是选择第一组坐标,然后将每张图片放入列表中的坐标,然后转到下一个坐标,从而在每个坐标处生成相同的图片。

我尝试重新排列循环的顺序,但这不起作用。

def drawPicture(img, x, y, win):
    picture = Image(Point(x,y), img)
    picture.draw(win)

#create lists for cards
pictureNamesList = ["0.gif", "1.gif", "2.gif", "3.gif", "4.gif", "5.gif", "6.gif", "7.gif", "0.gif", "1.gif", "2.gif", "3.gif", "4.gif", "5.gif", "6.gif", "7.gif"]
random.shuffle(pictureNamesList)

#draw cards and their backs
cardsX = [375, 475, 575, 675]
cardsY = [100, 200, 300, 400]

for x in range(4):
    for y in range(4):
        for pic in range(16)
            drawPicture(pictureNamesList[pic], int(cardsX[x]), int(cardsY[y]), win)

【问题讨论】:

  • 你真正想要什么并不明显。打印它现在所做的某些版本以及您希望它执行的某些版本可能很有用。

标签: python-3.x for-loop nested-loops


【解决方案1】:
for x in range(4):
    for y in range(4):
        drawPicture(pictureNamesList[x*4+y], int(cardsX[x]), int(cardsY[y]), win)

【讨论】:

  • 谢谢你这个工作,你能解释一下它是如何工作的吗?
  • 使用调试器或旧打印语句,在内循环中打印出 x*4+y 是什么。你会看到的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-14
  • 2021-12-16
  • 1970-01-01
  • 2021-03-29
  • 2020-07-23
  • 1970-01-01
相关资源
最近更新 更多