lst2 = [0.12, -0.23, 0.52, 0.2, 0.6, -0.3, 0.4]
minmax = [(min(v) if k else max(v)) for k, v in groupby(lst2, lambda a: a < 0)]
[abs(j - i) for i, j in zip(minmax[:-1], minmax[1:])]
Calculate difference each time the sign changes in a list of values