lst = [1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 0]
list(map(bool, map(int, list(re.sub('1{3,}0{1,2}1{3,}', lambda x: '2' * len
    (x.group()), ''.join(map(str, lst)))))))
numpy: обнаружить последовательный 1 в массиве