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

| | | | | | | | | |

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

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] 

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

распечатать filtered_list [1,4] 

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


Советы

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

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

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