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

如何用Lookup或HashMap替代Python代码中的if-else分支逻辑

用Lookup/HashMap替代区间判断的if-else分支

因为你要处理的是区间范围匹配,普通键值对字典无法直接对应,我们可以通过有序区间映射的方式实现需求,以下是两种可行方案:

方案一:基础有序区间遍历

把每个区间的上限和对应评分关联起来,按区间从小到大排序后遍历匹配,逻辑和原if-else完全一致:

# 定义区间上限与对应评分的映射列表(按区间从小到大排序)
time_rating_map = [
    (60, 10),
    (120, 8.34),
    (180, 6.68),
    (240, 5.02),
    (300, 3.36),
]

# 替换成你的实际min变量值
min_value = 90
# 默认评分对应原else分支
rating = 1.7

for upper_limit, score in time_rating_map:
    if min_value <= upper_limit:
        rating = score
        break

print(f'The rating for time is {rating}')

方案二:bisect模块优化查找(适合大量区间场景)

利用二分查找快速定位区间,时间复杂度为O(log n),效率更高:

import bisect

# 提取区间上限列表和对应评分列表(需保持顺序一致)
upper_limits = [60, 120, 180, 240, 300]
ratings = [10, 8.34, 6.68, 5.02, 3.36]

# 替换成你的实际min变量值
min_value = 250

# 用bisect_right找到区间索引
index = bisect.bisect_right(upper_limits, min_value)

if index < len(ratings):
    rating = ratings[index]
else:
    rating = 1.7

print(f'The rating for time is {rating}')

内容的提问来源于stack exchange,提问作者Akash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 19:05:29