Python中如何结合for循环与条件判断简化多区间赋值冗余代码
简洁实现方案
你这个需求正好匹配向上取整的逻辑,直接用Python内置math模块的ceil方法即可,完全不需要写多个if判断。
代码示例
import math # 遍历数组生成结果 result = [] for hour_val in daytime['hours']: # 可选边界校验,避免数值超出[0,13)范围时返回不符合预期的结果 if hour_val < 0 or hour_val >= 13: # 超出范围的数值可以根据你的需求自定义处理逻辑,这里默认返回None result.append(None) continue result.append(math.ceil(hour_val))
也可以用列表推导式写得更简洁:
import math result = [math.ceil(val) if 0 <= val < 13 else None for val in daytime['hours']]
之前方案出错原因
你尝试add=i+1没有得到预期结果,是因为混淆了数组索引i和数组内存储的数值:i代表元素在数组里的位置序号,和元素本身代表的小时数值没有关联,自然无法计算出正确的区间归属。
内容的提问来源于stack exchange,提问作者I_will_learn
相关产品推荐
相关产品推荐

