[EMAIL PROTECTED] wrote:
I have a list that starts with zeros, has sporadic data, and then has
good data. I define the point at  which the data turns good to be the
first index with a non-zero entry that is followed by at least 4
consecutive non-zero data items (i.e. a week's worth of non-zero
data). For example, if my list is [0, 0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8,
9], I would define the point at which data turns good to be 4 (1
followed by 2, 3, 4, 5).

I have a simple algorithm to identify this changepoint, but it looks
crude: is there a cleaner, more elegant way to do this?

    flag = True
    i=-1
    j=0
    while flag and i < len(retHist)-1:
        i += 1
        if retHist[i] == 0:
            j = 0
        else:
            j += 1
            if j == 5:
                flag = False

    del retHist[:i-4]

Thanks in advance for your help

Thomas Philips
--
http://mail.python.org/mailman/listinfo/python-list


Maybe this will do?

reHist = [0, 0, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
count = 0
for i, d in enumerate(reHist):
    if d == 0:
        count = 0
    else:
        count += 1
    if count == 5:
        break
else:
    raise Exception("No data found")
reHist = reHist[i-4:]
print reHist


-Matt
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to