Python3中如何更高效实现相邻tempAvg降幅≥1的检测任务
相邻温度降幅检测实现方案
你不需要逐一定义单条记录的变量、逐个写判断语句,用循环遍历序列的方式就能极简实现需求,适配任意长度的采集数据。
实现步骤
- 批量提取全量温度数据:用列表推导式一次性从返回的字典结构里拉出所有采集点的
tempAvg值,无需逐行写索引赋值 - 遍历相邻数据做判断:从第二条数据开始遍历,每次拿当前数据和前一条数据计算差值,满足降幅≥1的条件就记录/输出结果即可
可直接运行的代码示例
# 1. 批量提取所有采集点的平均温度,自动适配288条单日采集记录 temp_records = [obs['metric']['tempAvg'] for obs in response['observations']] # 2. 遍历相邻采集点做降幅判断 for i in range(1, len(temp_records)): prev = temp_records[i-1] current = temp_records[i] drop = prev - current if drop >= 1: # 可按需调整输出/存储逻辑,这里默认打印降幅和对应采集位置 print(f"第{i-1}到第{i}个采集点,温度下降幅度:{drop}")
扩展说明
如果需要留存所有符合条件的降幅记录做后续分析,只需要在循环前初始化一个空结果列表,判断符合条件时将「采集位置、前序温度、当前温度、降幅」打包存入列表即可,无需修改核心遍历逻辑。
这种写法的优势:
- 代码量从数百行压缩到10行以内,无冗余重复代码
- 逻辑和数据量解耦,不管后续采集间隔调整、单日采集条数变化,代码不需要做任何修改
- 调整判断规则时只需要修改一次if条件,不需要逐行改重复的判断语句
内容的提问来源于stack exchange,提问作者Lachlan B
相关产品推荐
相关产品推荐

