Manipulación de listas en Python con pop ()

n resumen, necesito eliminar varios elementos de una lista de acuerdo con sus índices. Sin embargo, no puedo usar pop porque cambia los índices (sin algún sistema de compensación torpe). ¿Hay alguna forma de eliminar varios elementos simultáneamente?

Tengo un algoritmo que pasa por una lista, y si las condiciones son correctas, elimina ese elemento a través del método pop. Surge un problema ya que todo esto se hace en un bucle. Una vez que se hace pop, la lista se acorta en uno, desplazando todos los valores en uno. Entonces el bucle se saldrá del rango. ¿Es posible eliminar varios elementos simultáneamente u otra solución?

Un ejemplo de mi problema:

L = ['a', 'b', 'c', 'd']

for i in range(len(L)):
    print L
    if L[i] == 'a' or L[i] == 'c':
        L.pop(i)

Respuestas a la pregunta(3)

Su respuesta a la pregunta