断崖数据检测算法

145 阅读1分钟
#!/usr/bin/python3
#检测断崖式数据,我下面的函数还可以优化不
#1.如果前后数据波动不大,则数据正常
#2.如果数据中间出现"V"和"W"后数据恢复正常,则数据正常
#3.需连续有2个数据以上异常,才判断为数据异常
#4.数据符合断崖探针,为数据异常
def check_adjacent_numbers1(lst):
    counts=0
    for i in range(len(lst) - 1):
        if abs(lst[0]-lst[-1])<10:
            print("数据正常")
            break
        print(f'第{i}次开始')
        count=0
        for y in range(i+1, len(lst) - 1):  # 从i开始到lst的最后一个元素
            print(f'{lst[i]}-{lst[y]}={abs(lst[i]-lst[y])}')
            if abs(lst[i] - lst[y]) > 10:  # 检查lst[i]和lst[y]
                count +=1
                print(count)
                if count>2:
                    print(f"第{i+1}个数{lst[i]}后开始出现数据异常")
                    counts +=1
                    print("………")
                    break
            else:
                print("…………")
                counts=0
                break
        if counts>=2:
            print("数据异常")
            return 0

ss=[80,900,800,80,80,80,80,120]
print(ss)
check_adjacent_numbers1(ss)