This tutorial will define different methods to use the ternary operator in Python. There is a different way of using the ternary operator in Python as compared to other programming languages. There are various ways to use ternary operators as per compatibility with the Python version. The tutorial will provide example codes to explain how to use the ternary operator in different Python versions.
Use the Ternary Operator in Python 2.5 and Above
The ternary conditional operator was added in Python 2.5. The ternary operator is defined as the operator which takes three operands. In this method, first, the given condition is evaluated, then one of the values is evaluated and sent back based on the boolean operator. It first takes the expression, and then comes the condition again, followed by the
else part of the expression.
The syntax of the ternary operator in Python is as below.
value_if if condition else value_else
As the ternary operator first evaluates the
condition, it allows short-circuiting, and only one of the two expressions will be evaluated. If
condition is true, the first expression
value_if is evaluated otherwise second expression
value_else is evaluated.
The example code below demonstrates how to use the ternary operators in Python.
a =2 b= 0 1 if a>b else 0
The ternary conditional operator’s output can be assigned to a variable, as shown in the example code below.
a =2 b= 0 temp = a if a>b else b print(temp)
the Ternary Operator in Python Using Tuple
The ternary operator in Python can be used by using tuples. It takes the expressions to be evaluated and a Boolean conditional statement. The expression to be returned depends on the boolean condition. If the condition is true, the first value is returned, and if the expression is false, the second value is returned. However, in any case, this method will evaluate everything instead of only the winning expression.
An example code is given below to demonstrate how this ternary operator can be used in Python using tuple.
a,b = 12,43 temp = (a*2,b/2)[a<b] print(temp)
the Ternary Operator Using
lambda for Versions Before 2.5 in Python
For versions prior to Python 2.5, the ternary operators can be used with
lambda. This method takes the values to be returned and a Boolean expression. This method follows a lazy evaluation technique in which the evaluation process is delayed until its value is required. It is a better approach than the tuple method in this sense. The expression in this method is given as
(falseValue, trueValue)[Test](). If the test condition is evaluated as
trueValue will be printed; otherwise,
falseValue gets printed.
An example code is given below to describe how the ternary operator can be used with
lambda in Python.
val1 ,val2 = 12,43 output = (lambda: val2, lambda: val1)[val1>val2]() print(output)