You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 23:45:04