Python if条件继续解析

Python if条件继续解析,python,Python,这是我的python脚本: mock_data = ((23020, "in0"), (23000, "in1"), (23020, "in2"), (0, "in3"), (23060, "in4"), (23080, "in5"), (23100, "in6"), (0, "in7")) mock_len = l

这是我的python脚本:

mock_data = ((23020, "in0"),
             (23000, "in1"),
             (23020, "in2"),
             (0, "in3"),
             (23060, "in4"),
             (23080, "in5"),
             (23100, "in6"),
             (0, "in7"))
mock_len = len(mock_data)
epsilon = 20
max_data = 0
isInInterval = True
for i in range(mock_len - 1):
    if isInInterval == True:
        if mock_data[i+1][0]-mock_data[i][0] == 20:
            max_data = mock_data[i+1][0]
            isInInterval = False
            print max_data
    if max_data != 0 and mock_data[i][0]==0:
        isInInterval = True
输出:

23020
23080
但当我将数据更改为:

mock_data = ((23020, "in0"),
             (23000, "in1"),
             (23020, "in2"),
             (0, "in3"),
             (23060, "in4"),
             (23080, "in5"),
             (23100, "in6"),
             (10, "in7"),
             (100,"int8"),
             (1000,"int9"),
             (1020,"int10"),
             (300,"int11"))
当前代码的输出仍与上面相同,但我还想打印1020:

23020
23080
1020

我的代码中最好的更改是什么,以涵盖这种情况,因为目前我的标志仅在从0开始时才为真。

例如,如果我将其设置为这样:

模拟数据=((23020,“in0”), (23000,“in1”), (23020,“in2”), (0,“in3”), (23060,“in4”), (23080,“in5”), (23100,“in6”), (10,“in7”), (100,“int8”), (1000,“int9”), (1020,“int10”), (300,“int11”)) 模拟长度=长度(模拟数据) ε=20 最大数据=0 isInInterval=True 对于范围内的i(模拟长度-1): 如果isInInterval==真: 如果模拟_数据[i+1][0]-模拟_数据[i][0]==20: 最大数据=模拟数据[i+1][0] isInInterval=False 打印最大值数据 如果最大数据!=0和模拟数据[i+1][0]>模拟数据[i][0]+300:
isInInterval=True不清楚您试图实现的目标是什么。你只是想在数据中识别一个新数据集的开始,最初你认为它总是以零开始,但现在发现一个新序列的开始可能是0,10300或其他什么。如果是这样,只要新序列的开始总是小于先前的值,那么对
mock_data[i][0]
进行测试就足够了。