如何更高效实现三数最大值判断及相等情况处理?
优化方案:简化三数最大值判断逻辑
可以通过先确定最大值,再匹配所有等于最大值的变量的方式,彻底消除嵌套if,让代码更简洁易读:
def highest(a, b, c): max_val = max(a, b, c) # 收集所有等于最大值的变量名 greatest_vars = [] if a == max_val: greatest_vars.append('a') if b == max_val: greatest_vars.append('b') if c == max_val: greatest_vars.append('c') # 根据变量数量生成结果字符串 if len(greatest_vars) == 1: return f"{greatest_vars[0]} is greatest" else: return " and ".join(greatest_vars) + " are equal" # 示例调用 print(highest(1,6,6)) # 输出: b and c are equal print(highest(5,3,5)) # 输出: a and c are equal print(highest(9,2,4)) # 输出: a is greatest
优化思路说明
- 用
max()直接获取三个数的最大值,避免手动写多重大小比较的冗余逻辑 - 遍历三个变量,收集所有等于最大值的变量名,无需嵌套判断每种相等组合
- 最后根据收集到的变量数量,统一处理单最大值和多最大值相等的场景,逻辑更清晰,后续扩展(比如增加更多变量)也更方便
对比原代码的优势
- 消除了多层嵌套if,代码结构更扁平,可读性大幅提升
- 逻辑复用性更强,新增变量时只需修改变量收集部分,无需重构大量条件判断
- 减少了重复的比较操作,运行效率更优
内容的提问来源于stack exchange,提问作者warloxx
相关产品推荐
相关产品推荐

