Conditional operator in Python?

do you know if Python supports some keyword or expression like in C++ to return values based on if condition, all in the same line (The C++ if expressed with the question mark ?)

// C++
value = ( a > 10 ? b : c )
139806 次浏览
value = b if a > 10 else c

对于 Python 2.4或更低版本,您必须执行以下操作,尽管语义并不完全相同,因为短路效应已经消失:

value = [c, b][a > 10]

还有另外一种使用“ and... or”的黑客技术,但是最好不要使用它,因为它在某些情况下有一种不受欢迎的行为,可能会导致很难找到 bug。我甚至不会在这里写黑客,因为我认为最好不要使用它,但你可以阅读有关它的 维基百科,如果你想要的。

简单是最好的,在每个版本中都有效。

if a>10:
value="b"
else:
value="c"