2013-08-02 40 views
0

在Java的时候,一个变量设置为基于一个条件的值在一行 可以做像这样:Python的直列如果设置变量

variable = (!true) ? 1 : 2 

这将导致为“2”。

是否有python相当于此代码?

谢谢。

+0

为了将来的参考,这被称为三元运算符。该术语应该比“内联如果”更具搜索友好性。 – user2357112

+0

鉴于'!true'是一个常数,最简单的方法是将它写在一行中,即'variable = 2'。 :) – abarnert

+1

@ user2357112:实际上,在Python中,它被称为“条件表达式”,并且“if”明确地不是运算符。然而,经过一些抵制之后,他们对[文档](http://docs.python.org/3/reference/expressions.html#conditional-expressions)进行了修改并添加了“有时称为”三元运算符“这就是来自C族语言的每个人都在寻找的东西。 – abarnert

回答

3
variable = 1 if not True else 2 

一般三元语法:

<value_if_true> if <condition> else <value_if_false> 

这被称为Python中的conditional expression,并且大多是等价于C家族语言的“三元操作符”(虽然它并不是一个真正的运营商)。原提案PEP 308有更多细节。