Python-equivalent of short-form "if" in C++

Question:

Is there a way to write this C/C++ code in Python?
a = (b == true ? "123" : "456" )

Asked By: huy

||

Answers:

a = '123' if b else '456'
Answered By: SilentGhost

See PEP 308 for more info.

Answered By: ghostdog74

My cryptic version…

a = ['123', '456'][b == True]
Answered By: Socram

While a = 'foo' if True else 'bar' is the more modern way of doing the ternary if statement (python 2.5+), a 1-to-1 equivalent of your version might be:

a = (b == True and "123" or "456" )

… which in python should be shortened to:

a = b is True and "123" or "456"

… or if you simply want to test the truthfulness of b’s value in general…

a = b and "123" or "456"

? : can literally be swapped out for and or

Answered By: jdi
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.