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

Estoy trabajando en un progtwig 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, se actualiza el nuevo objeto agregado y ya anexados no se actualizan.

El progtwig, 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

edición: pensé que ya lo intentaste: https://stackoverflow.com/a/11172885/341744

El progtwig, 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?

Podría iterar en una lista temporal, por ejemplo, si mata a los actores mientras itera.

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

Debe volver a dibujar la lista completa después de su blit (cubre toda la pantalla con el ‘fondo’ de la superficie y ‘la borra’), no es condicional, debe recorrer toda la lista y dibujarla. En la parte del evento, usted decide quién ingresa y quién abandona la lista.

 Loop: Blit,starting new Event, here you decide who moves, who begin or cease to exist(append/remove) Redraw whole list, everyone in the circle_list. 

Para dibujar todos los círculos en su lista, solo iterar a través de ellos y dibujarlos antes de cada llamada para actualizar:

 for circle in circle_list: circle.draw_circle() 

Edición: el OP había publicado un código con formato incorrecto, pero dice que el código real está bien, así que eliminé esa sugerencia