python 如何实现?:表达式

现在大部分高级语言都支持“?”这个三元运算符(ternary operator),它对应的表达式如下:condition ? value if true : value if false。很奇怪的是,这么常用的运算符python居然不支持!诚然,我们可以通过if-else语句表达,但是本来一行代码可以完成的非要多行,明显不够简洁。没关系,在python里其实还是有对应的表达方式的。 

(1) variable = a if exper else b
(2) variable = (exper and [b] or [c])[0]
(3) variable = exper and b or c

上面三种用法都可以达到目的,类似C语言中 variable = exper ? b : c;即:如果exper表达式的值为true则variable = b,否则,variable = c

例如:

a, b = 1, 2
max = a if a > b else b
max2 = (a > b and [a] or [b])[0]  # list
max3 = a > b and a or b
print max,max2,max3

猜你喜欢

转载自blog.csdn.net/NEONwuwu/article/details/83625540