from itertools import groupby
lst = [-0.23, -0.5, -0.3, -0.8, 0.3, 0.6, 0.8, -0.9, -0.4, 0.1, 0.6]
minmax = [(min(v) if k else max(v)) for k, v in groupby(lst, lambda a: a < 0)]
[abs(j - i) for i, j in zip(minmax[:-1], minmax[1:])]
Вычислять разницу каждый раз, когда знак меняется в списке значений