How about using some flags to track where you are in the checking process and some variables to hold historical info?
This is not super elegant code but it is fairly simple to understand I think and fairly robust for the use case you gave.
My code
cross = [7,5,8,0,0,0,0,2,5,8,0,0,0,0,8,7,9,3,0,0,0,3,2,1,4,5,0,0,0,7,5]
foundstart = False
foundend = False
startindex = 0
endindex = 0
for i in range(0, len(cross)):
if cross[i] != 0:
if not foundstart:
foundstart = True
startindex = i
else:
if foundstart:
foundend = True
endindex = i - 1
if foundend:
print(startindex, endindex)
foundstart = False
foundend = False
startindex = 0
endindex = 0
if foundstart:
print(startindex, len(cross)-1)
Output
0 2
7 9
14 17
21 25
29 30
2
solved Find starting and ending indices of list chunks satisfying given condition