Using groupby:
def del_zeros(lst, n): lst = (list(j)[:n] if i else list(j) for i,j in itertools.groupby(lst, key=lambda x:x==0)) return [item for sublist in lst for item in sublist]
And tests:
>>> [del_zeros(L, i) for i in range(5)] [[7, 12, 2, 27, 10, 8], [7, 0, 12, 0, 2, 0, 27, 10, 0, 8], [7, 0, 12, 0, 0, 2, 0, 0, 27, 10, 0, 0, 8], [7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 8], [7, 0, 12, 0, 0, 2, 0, 0, 0, 27, 10, 0, 0, 0, 0, 8]]