Ternary Operator in Python
The ternary operator in Python allows us to perform conditional checks and assign values or perform operations on a single line. It is also known as a conditional expression because it evaluates a condition and returns one value if the condition is True and another if it is False.
Basic Example of Ternary Operator
The simplest way to use a Python ternary operator is when we have a simple if else condition – either of the two conditions is True and the other is False.
Let’s start with a simple example to determine whether a number is even or odd:
n = 5
res = "Even" if n % 2 == 0 else "Odd"
print(res)
Output
Odd
The ternary operator can be used in various ways. Let us see a few different examples to use Ternary Operators in Python:
Table of Content
Ternary Operator in Nested If else
The ternary operator can also be used in Python nested if-else statement. We can nest ternary operators to evaluate multiple conditions in a single line.
Syntax: value_if_true if condition else value_if_false
Example:
n = -5
res = "Positive" if n > 0 else "Negative" if n < 0 else "Zero"
print(res)
Output
Negative
Explanation:
- First, it checks if num > 0. If True, it returns “Positive”.
- If False, it checks if num < 0. If True, it returns “Negative”.
- If both conditions fail, it defaults to “Zero”.
Ternary Operator using Tuple
The ternary operator can also be written by using Python tuples. The tuple indexing method is an alternative to the ternary operator.
Syntax: (condition_is_false, condition_is_true)[condition]
Example:
n = 7
res = ("Odd", "Even")[n % 2 == 0]
print(res)
Output
Odd
Explanation:
- The condition num % 2 == 0 evaluates to False (index 0), so it selects “Odd”.
Ternary Operator using Dictionary
A dictionary can be used to map conditions to values, providing a way to use a ternary operator with more complex conditions.
Syntax: condition_dict = {True: value_if_true, False: value_if_false}
Example:
a = 10
b = 20
max = {True: a, False: b}[a > b]
print(max)
Output
20
Explanation: This uses a dictionary where the key is True or False based on the condition a > b. The corresponding value (a or b) is then selected.
Ternary Operator using Python Lambda
Lambdas can be used in conjunction with the ternary operator for inline conditional logic.
Syntax: lambda x: value_if_true if condition else value_if_false
Example:
a = 10
b = 20
max = (lambda x, y: x if x > y else y)(a, b)
print(max)
Output
20
Explanation: This defines an anonymous function (lambda) that takes two arguments and returns the larger one using the ternary operator. It is then called with a and b.
Ternary Operator with Print Function
The ternary operator can also be directly used with the Python print statement. Its syntax is a s follows:
Syntax: print(value_if_true if condition else value_if_false)
Example: In this example, we are finding the minimum number among two numbers using Python ternary operator with print statement.
a = 10
b = 20
print("a is greater" if a > b else "b is greater")
Output
b is greater
Explanation: This checks if a is greater than b. If true, it prints “a is greater”; otherwise, it prints “b is greater”.
Limitations of Python Ternary Operator
While the ternary operator is concise, it should be used with caution:
- It can reduce readability if overused or used in complex conditions.
- It’s limited to simple, single-line expressions.