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

如何简化含重复表格操作的Python多分支if语句?

优化多分支重复代码方案

方案一:利用线性映射关系简化代码

观察到用户ID(1-7)与目标单元格(B3-B9)存在行号=ID+2的线性对应关系,直接通过计算动态生成单元格地址,完全替代多分支if:

@bot.listen(hikari.GuildMessageCreateEvent)
async def message_count(event):
    user_id = event.author_id
    # 仅处理ID在1-7范围内的用户
    if 1 <= user_id <= 7:
        row_num = user_id + 2
        cell = f'B{row_num}'
        # 统一执行单元格更新逻辑
        current_value = int(wks.acell(cell).value)
        current_value += 1
        wks.update(cell, current_value)

方案二:用映射字典维护对应关系(扩展性更强)

如果后续ID与单元格的对应关系可能发生非线性调整,推荐用字典预先维护映射表,逻辑更清晰且易维护:

# 提前定义ID到目标单元格的映射表
ID_TO_CELL = {
    1: 'B3',
    2: 'B4',
    3: 'B5',
    4: 'B6',
    5: 'B7',
    6: 'B8',
    7: 'B9'
}

@bot.listen(hikari.GuildMessageCreateEvent)
async def message_count(event):
    user_id = event.author_id
    # 通过字典获取对应单元格,不存在则跳过
    target_cell = ID_TO_CELL.get(user_id)
    if target_cell:
        current_value = int(wks.acell(target_cell).value)
        current_value += 1
        wks.update(target_cell, current_value)

优化说明

  • 两种方案都彻底消除了重复代码,仅保留核心业务逻辑
  • 方案一适合固定线性对应关系的场景,代码更简洁
  • 方案二更灵活,后续调整ID与单元格的对应关系时,仅需修改映射字典,无需改动业务逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:20:28