Filtrer une liste en fonction d’une liste de booléens

| | | | | | | | | |

J'ai une liste de valeurs que je dois filtrer en fonction des valeurs d'une liste de booléens :

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

Je génère une nouvelle liste filtrée avec la ligne suivante :

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

ce qui donne :

print filtered_list [1,4] 

La ligne fonctionne mais semble (pour moi) un peu exagérée et je me demandais s'il y avait un moyen plus simple d'obtenir le même résultat.


Conseils

Résumé de deux bons conseils donnés dans les réponses ci-dessous :

1- Ne nommez pas une liste filtre comme je l'ai fait car c'est une fonction intégrée.

2- Ne comparez pas les choses à True comme je l'ai fait avec if filter[idx]==True.. car c'est inutile. Utilisez simplement if filter [idx] suffit.