itertools.compress()
Отбирает элементы data, для которых соответствующий элемент selectors истинен.
Сигнатура
itertools.compress(data, selectors)Проходит по data и selectors параллельно, оставляя только те элементы данных, напротив которых стоит истинное значение. Останавливается, когда заканчивается любая из последовательностей.
import itertools
data = ['a', 'b', 'c', 'd']
mask = [1, 0, 1, 0]
print(list(itertools.compress(data, mask))) # ['a', 'c']