Python中如何简化两数比较场景下的if-else逻辑?
Python中替代数值比较if-else的简洁写法
你的代码本质是在两个不等的数字里取较小值,直接用Python内置的min()函数就能一步搞定,完全替代那堆if-else逻辑:
a = 10 b = 15 c = min(a, b) # 结果c=10,和你原来的代码逻辑一致
如果需要完全匹配原代码里「当a和b相等时c为None」的逻辑,可以加个简单的条件判断:
c = min(a, b) if a != b else None
要是以后遇到更复杂的自定义条件(不是单纯取最小),还可以用三元表达式压缩if-else,对应你原逻辑的写法是:
c = b if a > b else (a if a < b else None)
不过这种写法只适合逻辑不复杂的场景,太复杂的话反而不如普通if-else可读性强。
你提到的类似for min(x,y) do z的形式,Python里没有这种语法,但c = min(a,b)其实就是最贴合的实现——直接调用min函数拿到结果并赋值给变量,和你设想的「执行min操作后做赋值」是同一个意思。
内容的提问来源于stack exchange,提问作者Guy
相关产品推荐
相关产品推荐

