Фильтрация списка на основе списка логических значений

У меня есть список значений, которые мне нужно отфильтровать, учитывая значения в списке логических значений:

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

Я создаю новый отфильтрованный список со следующей строкой:

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

что приводит к:

print filtered_list
[1,4]

Линия работает, но выглядит (для меня) немного излишне, и мне было интересно, есть ли более простой способ добиться того же.

Советы

Краткое изложение двух полезных советов, приведенных в ответах ниже:

1- Не называйте списокfilter как я сделал, потому что это встроенная функция.

2- Не сравнивайте вещи сTrue как я сделал сif filter[idx]==True.. так как это не нужно. Просто используяif filter[idx] достаточно.

Ответы на вопрос(5)

Ваш ответ на вопрос