Manipulação de lista em Python com pop ()

Em resumo, preciso remover vários itens de uma lista de acordo com seus índices. No entanto, não consigo usar o pop porque altera os índices (sem algum sistema de compensação desajeitado). Existe uma maneira de remover vários itens simultaneamente?

Eu tenho um algoritmo que percorre uma lista e, se as condições estiverem corretas, remove esse item pelo método pop. Surge um problema, pois tudo isso é feito em um loop. Depois que o pop é concluído, a lista é reduzida por um, deslocando todos os valores por um. Portanto, o loop ficará fora de alcance. É possível remover vários itens simultaneamente ou outra solução?

Um exemplo do meu 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)

questionAnswers(3)

yourAnswerToTheQuestion