2013-08-02 37 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有更多細節。