python (bool) ? then : else syntax?
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Python Ternary Operator
在一些语言中,包括Java、C/C++、C等,可以根据内嵌布尔表达式的结果赋值。
例如,
1 | return (i < x) ? i : x |
如果i
1 2 3 4 | if (i < x) return i else return x |
是否可以在Python中使用这种语法?如果可以,如何使用?
您可以使用
1 2 3 4 | >>> x = 0 >>> y = 1 >>> print("a" if x < y else"b") a |
这将起作用,lambda也会起作用。
是的,看起来像这样:
1 | return i if i < x else x |
它在Python中被称为条件运算符。
正如另一个答案所述,python的版本是:
(当然,对于这个特定的例子,人们更喜欢写作
然而,这个表达式语法刚刚在Python2.5上可用(我想大概是2004年左右)。在此之前,使用了以下成语-但应小心,因为它容易出错:
很容易看出这个构造有多容易出错,因为如果
在那些日子里,我自己也曾写过这个结构:
(x,i)[i 表达式"i python 2.5中引入了
1 | some_var = a<b and a or c |
如果要使用这种语法,请记住,
python中的三元运算符。
a if b else c
1 2 3 4 5 6 | >>> a=1 >>> b=2 >>> a if a<b else b 1 >>> a if a>b else b 2 |
在python中尝试:
1 | return i if i < x else x |
这与爪哇、C、C++ C中的以下表达式完全等价。
1 | return i < x ? i : x; |
了解更多关于Python条件表达式的信息。