Filtrar una lista basada en una lista de valores booleanos

| | | | | | | | | |

Tengo una lista de valores que necesito filtrar dados los valores en una lista de booleanos:

list_a = [1, 2, 4, 6] filter = [True, False , Verdadero, Falso] 

Generar una nueva lista filtrada con la siguiente línea:

filtered_list = [i for indx,i in enumerate(list_a) if filter[indx] == True] 

lo que da como resultado:

print filtered_list [1,4] 

La línea funciona pero me parece un poco exagerada y me preguntaba si había una forma más sencilla de lograr lo mismo.


Consejos

Resumen de dos buenos consejos dados en las respuestas a continuación:

1- No nombre una lista filter como lo hice yo porque es una función integrada.

2- No compares las cosas con True como hice con if filter[idx]==True.. ya que no es necesario. Solo usa if filter [idx] es suficiente.