假设有一个列表,a = [61, 40, 70, 80, 86, 50, 88, 33, 76, 64],保存的是设备的状态值随时间的变化,超过60即为异常,但是对于孤立的异常点,我们需要将其忽略,只有连续的异常点才认为是真正的异常,需要统计异常的次数(当然也可以有其他的操作,删除孤立的异常点等等)。

处理的代码如下:

def get_above_threshold_num(device_status, threshold):
if not isinstance(device_status, list) or not isinstance(threshold, int):
return
num = 0
count = len(device_status)
for index, value in enumerate(device_status):
if value >= threshold:
if (0 <= index - 1 < count and device_status[index - 1] >= threshold) or (0 <= index + 1 < count and device_status[index + 1] >= threshold):
num += 1
return num if __name__ == "__main__":
a = [61, 40, 70, 80, 86, 50, 88, 33, 76, 64]
b = get_above_threshold_num(a, 80)
print(b)

思路即就是遍历列表中的元素,如果大于等于阈值,则找到它的前一个元素和后一个元素,只要有一个元素是大于等于阈值的,则进行统计。

最新文章

  1. 移动信息化不能延续PC时代的痛
  2. 机器学习理论知识部分--偏差方差平衡(bias-variance tradeoff)
  3. C# 4.0 之线程安全集合篇
  4. thinkpad e450 win7黑苹果macos 10.10.5(网/显/声卡驱动)安装成功
  5. Linux 下zip包的压缩与解压
  6. hdu 1106:排序(水题,字符串处理 + 排序)
  7. G面经prepare: set difference
  8. BackgroundWorker的使用方法
  9. php生成图片
  10. hadoop命令行命令
  11. MVVM模式的一个小例子
  12. Codeforces 622B The Time 【水题】
  13. 关于SOQL(一)
  14. Servlet实例解说
  15. Sql Server的艺术(一) 视图的增删查改
  16. Java由先序序列和中序序列还原二叉树
  17. 一款C++写的tcp性能测试(压力测试)工具
  18. 【面向对象设计原则】之开闭原则(OCP)
  19. Rancher学习笔记-----1.分享链接
  20. Hyperic-Sigar简介——检测与监控

热门文章

  1. MySQL 同一Windows系统上安装多个数据库
  2. 解决vue+springboot前后端分离项目,前端跨域访问sessionID不一致导致的session为null问题
  3. Java学习笔记(3)--- 内部类,基本数据类型
  4. Ubuntu18.04连接蓝牙耳机
  5. itest(爱测试) 3.3.7 发布,开源BUG 跟踪管理&amp; 敏捷测试管理软件
  6. easyui权限
  7. react解析markdown文件
  8. 学习51cto中美团中的小知识点--组件实现按需求加载
  9. Class的使用,构造方法,实例属性和实例方法,静态属性和静态方法,this和super关键字,类的继承
  10. Java并发编程核心知识体系精讲