def pos_neg(data):
    split = []
for r in data:
    if len(split) == 0 or r > 0 and len(split[-1][-1]) > 0:
        split.append(([], []))
if r < 0:
    split[-1][-1].append(r)
else:
    split[-1][-2].append(r)
return split
data = [1, 2, 3, -4, -5, 3, 2, 4, -2, 5, 6, -5, -1, 1]
print(pos_neg(data))
Python создает группы кортежей в списке из другого списка