C和许多其他语言都有conditional (AKA ternary)运算符。这允许您根据条件的真实性在两个值之间做出非常简洁的选择,这使得表达式(包括赋值)非常简洁。
我错过了这一点,因为我发现我的代码有很多条件赋值,这些条件赋值在Python中只有四行:
if condition:
var = something
else:
var = something_else
而在C中应该是:
var = condition ? something : something_else;
在一个文件中使用一两次是可以的,但是如果你有很多条件赋值,行数就会爆炸,最糟糕的是,它们会吸引眼球。
我喜欢条件运算符的简洁性,因为它避免了我认为非战略性的事情在浏览代码时分散我的注意力。
那么,在Python中,有没有一个技巧可以用来将赋值放在一行上,以近似于我所概述的条件运算符的优点?
发布于 2010-06-22 16:10:20
Python有这样一个运算符:
variable = something if condition else something_else
或者,尽管不推荐这样做(请参阅karadoc's comment):
variable = (condition and something) or something_else
发布于 2010-06-22 16:12:21
在较早的Python代码中,您可能会看到诀窍:
condition and something or something_else
然而,这已经被非常优越的... if ... else ...
构造所取代:
something if condition else something_else
https://stackoverflow.com/questions/3091316
复制相似问题