Python中x = (10<n) ? 10 : n;的等效写法是什么?
我在想,Python里有什么和这个相等的写法呢:
n = 100
x = (10 < n) ? 10 : n;
print x;
不知道为什么这个在Python里不管用。我知道可以用if语句,但我只是好奇有没有更简短的写法。
谢谢。
6 个回答
4
有几种方法可以实现三元操作,第一种是使用2.5版本新增的表达式:
n = foo if condition else bar
如果你想兼容低于2.5版本的情况,可以利用布尔值是int
的子类这一点。也就是说,True
就像是1
,而False
就像是0
:
n = [bar, foo][condition]
另一种方法是利用Python中运算符的行为,特别是and
和or
的表现方式:
n = condition and foo or bar
17
x = min(n, 10)
x = 10 if 10<n else n
或者,更一般来说: