python? (条件/三元)操作员的作业
C和许多其他语言都有一个有条件的(aka三元)运算符。 这使您可以基于条件的真实性在两个值之间做出非常简洁的select,这使得expression式(包括赋值)非常简洁。
我错过了这个,因为我发现我的代码有很多条件分配,在Python中占用四行:
if condition: var = something else: var = something_else
而在C它会是:
var = condition? something: something_else;
一个文件中有一两次是好的,但是如果你有很多的条件赋值,那么行数会爆炸,最糟糕的是,眼睛被吸引到它们。
我喜欢条件运算符的简洁性,因为它使我认为不具战略性的东西在浏览代码时分散注意力。
那么,在Python中,是否有任何技巧可以用来将任务分配到单个线上,以近似我描述的条件运算符的优点?
Python有这样一个运算符:
variable = something if condition else something_else
另外,虽然不推荐(见@ karadoc的评论):
variable = (condition and something) or something_else
在较老的Python代码中,您可能会看到这样的技巧:
condition and something or something_else
然而,这已经被大大优越的... if ... else ...
构造所取代:
something if condition else something_else