Filtrando uma lista com base em uma lista de booleanos

| | | | | | | | | |

Tenho uma lista de valores que preciso filtrar dados os valores em uma lista de booleanos:

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

Geito uma nova lista filtrada com a seguinte linha:

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

o que resulta em:

imprimir lista_filtrada [1,4] 

A linha funciona, mas parece (para mim) um pouco exagerada e eu queria saber se havia uma maneira mais simples de conseguir o mesmo.


Conselhos

Resumo de dois bons conselhos dados nas respostas abaixo:

1- Não nomeie uma lista filtro como eu fiz porque é uma função interna.

2- Não compare as coisas com True como eu fiz com if filter[idx]==True.. já que é desnecessário. Apenas usando if filter [idx] é suficiente.