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