Een lijst filteren op basis van een lijst met booleans

| | | | | | | | | |

Ik heb een lijst met waarden die ik moet filteren gezien de waarden in een lijst met booleans:

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

Ik genereer een nieuwe gefilterde lijst met de volgende regel:

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

wat resulteert in:

print filtered_list [1,4] 

De regel werkt, maar lijkt (voor mij) een beetje overdreven en ik vroeg me af of er een eenvoudigere manier was om hetzelfde te bereiken.


Advies

Samenvatting van twee goede adviezen gegeven in de onderstaande antwoorden:

1- Noem een lijst filter niet zoals ik deed, want het is een ingebouwde functie.

2- Vergelijk dingen niet met True zoals ik deed met if filter[idx]==True.. omdat het niet nodig is. Gewoon if filter gebruiken [idx] is genoeg.