网络宝典
第二套高阶模板 · 更大气的阅读体验

用字典代替条件判断,代码更清爽

发布时间:2026-01-11 10:30:55 阅读:249 次

代码时,遇到多个条件分支,很多人第一反应就是写一连串的 if-elif-else。比如根据用户输入的星期几,返回对应的提醒事项:

def get_tips(day):
    if day == "周一":
        return "开会多,带好笔记本"
    elif day == "周二":
        return "下午有培训,别迟到"
    elif day == "周三":
        return "中间日,注意休息"
    elif day == "周四":
        return "快周末了,检查任务进度"
    elif day == "周五":
        return "准备收尾,愉快过周末"
    else:
        return "请输入正确的星期"

这段代码能跑,但看起来有点啰嗦。每加一个新条件,就得再写一个 elif。其实,这种“一对一映射”的场景,完全可以用字典来替代。

用字典简化判断

把上面的逻辑改用字典实现:

def get_tips(day):
    tips_map = {
        "周一": "开会多,带好笔记本",
        "周二": "下午有培训,别迟到",
        "周三": "中间日,注意休息",
        "周四": "快周末了,检查任务进度",
        "周五": "准备收尾,愉快过周末"
    }
    return tips_map.get(day, "请输入正确的星期")

逻辑没变,但代码更清晰了。新增一个星期几,只需要在字典里加个键值对,不用动函数结构。.get() 方法还能优雅处理不存在的情况,避免报错。

处理复杂逻辑怎么办?

如果每个分支不只是返回字符串,而是要执行不同操作,也能用字典。这时候,字典的值可以是函数名。

def action_monday():
    print("创建本周计划表")

def action_friday():
    print("备份文件,关闭未完成任务")

def do_something(day):
    actions = {
        "周一": action_monday,
        "周五": action_friday
    }
    func = actions.get(day)
    if func:
        func()
    else:
        print("今天没啥特别安排")

调用 do_something("周一") 就会执行对应的函数。这种方式让代码结构更松散,维护起来也方便。哪天要加个“周三自动整理邮箱”的功能,只管写函数,再往字典里一塞就行。

日常写脚本、做自动化小工具时,这种技巧特别实用。别总盯着 if-else 不放,换个思路,字典也能当“开关”用。