最紧凑的"X如果X否则Y"习语

我发现自己必须做以下操作:
x =(一些复杂的表达)
y = x如果x else" blah"
我想知道是否有任何内置的成语
可以消除放置的需求(一些复杂的表达)
在临时变量x中。
例如类似以下内容:
y = foobar((一些复杂的表达)," blah")
我意识到Foobar()可以很容易地编码为:
Def Foobar(A,B):
如果a:返回
else:返回b
但是我想知道是否有内置功能或语法
那已经做到了。

# 回答1


10月12日,12:01*AM,JBPEREZ ...@yahoo.com写道:
您可以在"或"上抓住机会,如下所示:
12
"等等"
您无需使用三元语句:
y =(一些复杂的表达)
如果不是y:
y =" blah"
如果您发现自己使用了很多,为什么不将其添加到您的网站
公用事业模块?花点时间,如果您发现很多用途,
呈现它们并使案例应该有一个内置的事情来做到这一点,
类似"同上"标记:
(6-(3 << 1))如果同上其他'blah'
# 回答2


对于这种特殊情况的常见习语也在
条件表达式的条件或基本是
y = <一些复杂表达式>
如果不是y:y =" blah"
# 回答3


在2008年10月11日星期六22:01:46 -0700,JBPEREZ808写道:
使用短路布尔值:
y = x或" blah"
如果x是任何真实值(非零号,非空字符串等),则y
将设置为x;但是,如果x是任何错误的值(零,空字符串,无,
空列表等)然后将y设置为" blah"。
但是,该技术对于任意测试不起作用。例如,
您无法简化以下内容:
x =(一些复杂的表达)
y = x如果100 <= x <250其他" blah"
(至少我想不出任何方式)。
- -
史蒂文
# 回答4


在阳光下,2008年10月12日05:30:33 +0000,史蒂文·戴阿普拉诺(Steven D'Aprano)写道:
当然,除了您不使用X之外,您还使用复杂表达式。
y =(一些复杂的表达)或" blah"
抱歉,张贴的手指发痒。
- -
史蒂文
# 回答5


谢谢,伙计们。
短路布尔是我想的语法
暂时逃脱了我,但是"如果不是x:x ='blah'"习语
也很有启发性。

标签: python

添加新评论