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

Python中替换多分支if-elif实现societe_var映射bu_list的高效方法

实现方案

方案1:字典映射(全Python版本兼容,最推荐)

这是Python中替换多分支等值判断的最常用优雅方案,利用字典的键值映射关系直接取值,用.get()方法处理默认分支,代码如下:

# 先定义映射关系
bu_map = {
    'apple': bu_list_apple,
    'banana': bu_list_banana,
    'pear': bu_list_pear
}
# 直接取值,第二个参数为匹配不到时的默认值
bu_list = bu_map.get(societe_var, bu_list_cherry)

优势:

  • 代码更简洁,避免了多层if-elif嵌套
  • 后续新增/修改映射规则只需调整字典内容,无需改动逻辑代码
  • 执行效率更高,字典取值是O(1)时间复杂度,多分支判断是O(n)

方案2:match-case 结构(Python 3.10+ 版本支持)

如果你的运行环境支持Python 3.10及以上版本,也可以用官方新增的结构化模式匹配语法,语义更清晰:

match societe_var:
    case 'apple':
        bu_list = bu_list_apple
    case 'banana':
        bu_list = bu_list_banana
    case 'pear':
        bu_list = bu_list_pear
    case _:
        bu_list = bu_list_cherry

适用场景:如果每个分支除了赋值之外还有其他额外的处理逻辑,用match-case会比字典映射更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:45:03