什么是Python相当于x =(10

时间:2011-01-30 13:09:59

标签: python ternary

我想知道python中的等价物是什么:

n = 100
x = (10 < n) ? 10 : n;
print x;

由于某些原因,这在Python中不起作用。我知道我可以使用if语句,但我只是好奇,如果有一些较短的语法。

感谢。

6 个答案:

答案 0 :(得分:17)

x = min(n, 10)

或者,更一般地说:

x = 10 if 10<n else n

答案 1 :(得分:7)

以下是Python中的ternary operator(在文档中也称为conditional expressions)。

x if cond else y

答案 2 :(得分:4)

有多种方法可以进行三元运算,第一种方法是使用2.5添加表达式

n = foo if condition else bar

如果要与低于2.5的版本兼容,可以利用布尔是int的子类,True的行为类似1False的行为比如0

n = [bar, foo][condition]

另一种可能性是利用Python中运算符的行为方式或更准确地说andor行为的方式:

n = condition and foo or bar

答案 3 :(得分:1)

>>> n = 100
>>> x = 10 if n > 10 else n
>>> x
10

答案 4 :(得分:1)

10 if 10 < n else n 

请参阅http://en.wikipedia.org/wiki/Ternary_operation

答案 5 :(得分:1)

x = 10 if (10 < n) else n

(需要python 2.5)