gpt4 book ai didi

python - 在 Python < 2.5 中执行三元条件的最佳方法

转载 作者:太空宇宙 更新时间:2023-11-04 06:45:54 27 4
gpt4 key购买 nike

我必须忍受 Python 版本 < 2.5(具体是 2.4.3)

似乎从 Python 2.5 开始就引入了三元运算符。对于那些不熟悉的人,Python >= 2.5 中的三元运算符看起来像这样:

def do_ternary(flag):
return "foo" if flag else "bar"

我想知道一些在 Python 的早期版本中模拟它的解决方案。我肯定可以用 if ... else 来做到这一点,但我正在寻找更像 pythonic 的东西,我不会因为使用一些生产级代码而感到羞耻:)

感谢您的帮助!

最佳答案

完成 if/else 所做的所有事情的正确方法是:

(condition and (yes_value,) or (no_value,))[0]

它既可以短路又可以解决 yes_value 本身为假的问题。显然,如果你有理由避免这种纠缠,那就去做吧;在您的示例中,两个条件都是常量表达式,因此您可以:

{True: yes_value, False: no_value}[bool(condition)]

或更简洁:

(no_value, yes_value)[condition]

如果您确实需要短路,但您确信 yes_value 永远不会是假的,您可以修剪元组:

 condition and yes_value or no_value

但这可能仅在 yes_value 实际上是常量时才有效。如果这些都不适合您的口味或需要,只需使用带有中间变量的普通 if: 语句

if condition:
result = yes_value
else:
result = no_value

关于python - 在 Python < 2.5 中执行三元条件的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10158670/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com