Как разбить список на подсписки по элементу "0"

Дан список mas с содержанием элемента 0 (например [1, 6, 0, 2, 3, 0, 4])

Нужно разбить список на подсписки отрезками, используя 0 как разделитель (получится [[1, 6], [2, 3], [4]]) Моя попытка решения, работает, но код ужасный. Подскажите, пожалуйста, более "красивый" вариант решения этой проблемы

mas=list(map(int, input().split()))
ind=[-1]
for i in range(len(mas)):
    if mas[i]==0:
        ind.append(i)
ind.append(len(mas))
mas1=[]
for i in range(len(ind)-1):
    mas1.append(mas[ind[i]+1:ind[i+1]])
print(mas1)

Ответы (2 шт):

Автор решения: Pigeoncatcher

На скорую руку такое решение

lst = [1, 6, 0, 2, 3, 0, 4]
result = []
temp = []
for i in lst:
    if i != 0:
        temp.append(i)
    else:
        result.append(temp)
        temp = []

result.append(temp)
→ Ссылка
Автор решения: strawdog

Воспользуйтесь группировкой от itertools.groupby:

from itertools import groupby
a = [1, 6, 0, 2, 3, 0, 4]
b = [list(group) for key, group in groupby(a, key=lambda x: x!=0) if key]
print(b)

[[1, 6], [2, 3], [4]]

→ Ссылка