Question
Asked By – Abruzzo Forte e Gentile
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 )
Now we will see solution for issue: Conditional operator in Python? [duplicate]
Answer
value = b if a > 10 else c
For Python 2.4 and lower you would have to do something like the following, although the semantics isn’t identical as the short circuiting effect is lost:
value = [c, b][a > 10]
There’s also another hack using ‘and … or’ but it’s best to not use it as it has an undesirable behaviour in some situations that can lead to a hard to find bug. I won’t even write the hack here as I think it’s best not to use it, but you can read about it on Wikipedia if you want.
This question is answered By – Mark Byers
This answer is collected from stackoverflow and reviewed by FixPython community admins, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0