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

如何简化Python中大量的if语句?附场景示例代码

如何简化Python中大量的if语句?

针对你给出的场景——根据列表元素是否为1来打印对应语句,最简洁的方式是将数据与逻辑分离,用映射关系替代重复的if判断,同时通过函数复用重复逻辑。

方案一:用列表映射索引与消息

因为你的索引是连续的0-4,直接用列表对应索引和消息最直观:

# 定义每个列表对应的消息列表,索引与原代码一一对应
s_messages = [
    "you are a !",
    "high !",
    "jj",
    "dkkdkd",
    "kkkk"
]

w_messages = [
    "you are a low!",
    "low !",
    "jj",
    "dkkdkd",
    "kkkk"
]

# 通用处理函数
def print_matching_messages(target_list, message_list):
    for index, value in enumerate(target_list):
        if value == 1:
            print(message_list[index])

# 处理s列表
print_matching_messages(s, s_messages)
# 处理w列表
print_matching_messages(w, w_messages)

方案二:用字典映射索引与消息

如果后续索引可能不连续,或者需要更灵活的映射,用字典更合适:

# 定义索引到消息的映射
s_msg_map = {
    0: "you are a !",
    1: "high !",
    2: "jj",
    3: "dkkdkd",
    4: "kkkk"
}

w_msg_map = {
    0: "you are a low!",
    1: "low !",
    2: "jj",
    3: "dkkdkd",
    4: "kkkk"
}

def print_matching_messages(target_list, msg_map):
    for index, value in enumerate(target_list):
        if value == 1:
            # 用get避免索引不存在时报错,可自定义默认值
            print(msg_map.get(index, ""))

print_matching_messages(s, s_msg_map)
print_matching_messages(w, w_msg_map)

为什么这么做?

  1. 减少重复代码:原来的重复if判断被统一的循环和映射替代,新增索引或修改消息只需修改映射列表/字典,不用加新的if语句。
  2. 逻辑清晰:数据(消息)和逻辑(判断+打印)分离,代码可读性更强。
  3. 复用性高:通用函数可以处理任意类似结构的列表和消息映射,不用重复写判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:45:31