当前位置: 首页 > 面试题库 >

Python和Pygame:在迭代过程中循环下更新列表中的所有元素

鲜于温书
2023-03-14
问题内容

我正在使用Python开发程序并使用Pygame。基本代码如下所示:

while 1:

   screen.blit(background, (0,0))
   for event in pygame.event.get():

      if event.type == QUIT:
        pygame.quit()
        sys.exit()

      if event.type == KEYDOWN and event.key == K_c:
        circle_create = True
        circle_list.append(Circle())

      if event.type == MOUSEBUTTONDOWN and circle_create == True:
        if clicks == 0:
            circle_list[i].center()
        clicks += 1


      if event.type == MOUSEMOTION and clicks == 1 and circle_create == True:
        circle_list[i].stretch()

   if circle_create == True:
     circle_list[i].draw_circle()

   if clicks == 2:
     clicks = 0
     i += 1
     circle_create = False

 pygame.display.update()

我想做的是让对象的draw_circle()函数由循环不断更新,以便为列表中的所有对象显示绘制的圆,但是由于列表是迭代的,因此它更新了添加的新对象和对象已经附加的文件不会更新。

该程序可以运行,它可以根据用户输入画圈,但是更新问题是我需要解决的唯一问题。是否有可能通过while循环更新对象列表中的所有元素?我已经尝试了很多天,但我一直找不到一个好的解决方案。任何想法表示赞赏。谢谢


问题答案:

编辑:我以为你已经尝试过:https :
//stackoverflow.com/a/11172885/341744

该程序可以运行,它可以根据用户输入画圈,但是更新问题是我需要解决的唯一问题。是否有可能通过while循环更新对象列表中的所有元素?

例如,如果您在迭代时杀死演员,则可以在临时列表上进行迭代

for circle in circles[:]:
    circle.update()


 类似资料:
  • 下面的代码尝试迭代excel文件,并将数据加载到

  • 我有客户对象的列表。我想迭代列表并按1递增顺序。 我尝试了每个列表,但在这里我必须创建新列表并在其中添加值。 有没有更好的方法?我尝试使用streams,但它只是映射订单

  • 本文向大家介绍列表中特定于Python索引的循环迭代,包括了列表中特定于Python索引的循环迭代的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将编写一个程序来循环访问给定列表中的列表。让我们看一下解决问题的步骤 初始化列表和索引。 使用len查找列表的长度。 使用长度遍历列表。 使用index%length查找元素的索引。 打印元素。 递增索引。 这是一个简单的循环迭代。您可以编写它

  • 问题内容: 我想知道是否有任何内置方法可以继续进行python外循环中的下一次迭代。例如,考虑以下代码: 我希望此继续语句退出jj循环并转到ii循环中的下一项。我可以通过其他方式(通过设置标志变量)来实现此逻辑,但是有一种简单的方法可以做到这一点,还是像要求太多? 问题答案: 在一般情况下,当您有多个循环级别且对您不起作用时(因为您要继续上一个循环,而不是当前循环的右上循环),可以执行以下操作之一

  • 我可以吃我的蛋糕(循环),也可以吃它(迭代所有整数)吗?

  • 我有一个网络应用编程接口,多个列表,和一个从网络应用编程接口查询数据的函数。我已经设法手动更新列表,一次一个。然而,数据有多个列(列表将包含列的数据),并且有38个列表并手动调用函数来更新它们是很麻烦的。我设计了一个简短的for循环来迭代列表,并相应地更新它们。但是,更新后的列表不会返回;或者甚至没有更新。如何在代码中修复此问题?请参阅下面的代码,虽然我不能提供API上的数据: =========

  • 我远离python有一段时间了。当我尝试下面的代码时,它会给我索引错误

  • 问题内容: 在Python中遍历列表时,如果没有列表理解,就无法修改元素。以供参考: 那么,为什么不能通过Python中的循环修改元素?肯定有一些我想念的东西,但是我不知道是什么。我确定这是重复的,但是我找不到与此相关的问题,如果有链接,那就绰绰有余了。 问题答案: 因为工作方式是这样的: 所以如果你给i它分配任何东西都不会影响。 解决方案是您所建议的,或者遍历索引: 或使用: