Python y Pygame: actualizar todos los elementos en una lista debajo de un bucle durante la iteración

Estoy trabajando en un programa en Python y estoy usando Pygame. Así es como se ve el código básico:

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

Lo que quiero hacer es hacer que la función del objeto draw_circle () se actualice constantemente por el bucle para que se muestre el círculo dibujado para todos los objetos en la lista, pero como la lista se itera, actualiza el nuevo objeto agregado y los objetos. ya anexados no se actualizan.

El programa, funciona, dibuja los círculos en la entrada del usuario, pero el problema de actualización es el único problema que necesito resolver. ¿Hay alguna forma posible de que todos los elementos de la lista de objetos se actualicen mediante el bucle while? Lo he intentado durante muchos días y no he podido encontrar una buena solución. Cualquier idea es apreciada. Gracias