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

能否将Python中这段条件判断代码改写为一行代码?

问题

我有一段Python程序,完整代码如下:

from collections import Counter

def balance(left, right, result = 0):
    wages = {'!': 2, '?': 3}
    for key in Counter(left).keys():
        result += Counter(left).get(key) * wages.get(key)
    for key_ in Counter(right).keys():
        result -= Counter(right).get(key_) * wages.get(key_)
    if result == 0:
        return 'Balance'
    return 'Left' if result > 0 else 'Right'

请问能不能把这段条件判断代码改成一行?

if result == 0:
    return 'Balance'
return 'Left' if result > 0 else 'Right'
改写方案

完全可以,用嵌套三元表达式就能把这段逻辑浓缩成一行:

return 'Balance' if result == 0 else 'Left' if result > 0 else 'Right'

如果觉得嵌套的三元表达式可读性差点,可以加个括号明确优先级,看起来更清楚:

return 'Balance' if result == 0 else ('Left' if result > 0 else 'Right')

另外顺带提一句,你原代码里计算左右重量的循环部分也能简化,用生成器表达式配合sum()函数,代码会更简洁高效:

from collections import Counter

def balance(left, right):
    wages = {'!': 2, '?': 3}
    left_weight = sum(count * wages[char] for char, count in Counter(left).items())
    right_weight = sum(count * wages[char] for char, count in Counter(right).items())
    result = left_weight - right_weight
    return 'Balance' if result == 0 else 'Left' if result > 0 else 'Right'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 16:39:45