Python & Pygame: Atualizando todos os elementos em uma lista sob um loop durante a iteração

Eu estou trabalhando em um programa em Python e usando Pygame. é assim que o código básico se parece:

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()

O que eu quero fazer é que a função do objeto draw_circle () seja constantemente atualizada pelo loop, de forma que o círculo desenhado seja mostrado para todos os objetos na lista, mas como a lista é iterada, ele atualiza o novo objeto adicionado e os objetos já anexados não são atualizados.

O programa funciona, atrai os círculos na entrada do usuário, mas o problema de atualização é o único problema que eu preciso resolver. Existe alguma maneira possível de ter todos os elementos na lista de objetos sendo atualizados pelo loop while? Eu tentei por muitos dias e não consegui encontrar uma boa solução. quaisquer ideias são apreciadas. obrigado