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

无需大量if语句如何在列表总和比较时输出胜负平三种结果?

实现方案

你可以通过差值符号映射字典的方式实现需求,全程不需要写多分支if判断,同时完全对齐你原有代码的胜负判定逻辑,新增平局的处理分支:

代码示例

totalA = [5, 5, 5]
totalB = [5, 5, 5]

sumA, sumB = sum(totalA), sum(totalB)
# 字典映射三种判定结果,和你原有胜负逻辑完全对齐
result_map = {
    -1: "Win",
    0: "平局",
    1: "Lose"
}
# 计算sumA和sumB的大小关系符号,只会返回-1/0/1三个值
sign = (sumA > sumB) - (sumA < sumB)
print(result_map[sign])

逻辑说明

  • 当sumA < sumB时:(False) - (True) = 0 - 1 = -1,对应输出Win,和你原有逻辑一致
  • 当sumA == sumB时:(False) - (False) = 0 - 0 = 0,对应输出平局
  • 当sumA > sumB时:(True) - (False) = 1 - 0 = 1,对应输出Lose,和你原有逻辑一致

如果后续需要调整胜负判定逻辑,只需要修改result_map里的对应值即可,不需要修改判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 11:45:04