Python中的三元表达式
Python 自身是不支持传统语言的三元表达式的 <condition> ? <express_1> : <express_2>
,有如下几个变通的方法可用。
但是不论如何请以团队平均水平写出容易让别人看懂的代码,哪怕这个代码看起来有点“蠢”也没有关系。
关于如下个人不建议用原因很简单,给多语言使用者带来完全没有必要的认知负担。
能装逼的地方很多,不需要在这种毫无意义的地方上装逼。
原始版本
x = 10
if x > 5:
print("greater")
else:
print("smaller")
类似英语语法的版本
<true_value> if <conditional_expression> else <false_value>
nice_weather = True
print("Go out for a walk" if nice_weather else "watch a movie at home")
num = 12
print("Even" if num % 2 == 0 else "Odd")
a = 10
b = 5
largest = a if a > b else b
print(largest)
黑魔法元组版本(很装逼很酷,个人不建议用)
(false_value, true_value)[conditional_expression]
a = 10
b = 5
largest = (b, a)[a > b]
print(largest)
nice_weather = True
print(("Watch a movie at home", "Go out for a walk")[nice_weather])
黑魔法list版本(很装逼很酷,个人不建议用)
[false_value, true_value][conditional_expression]
>>> a = 10
>>> b = 5
>>> largest = [b, a][a > b]
>>> print(largest)
黑魔法字典版本(很装逼很酷,个人不建议用)
{True: true_value, False: false_value}[conditional_expression]