Learning Sections show
Walrus Operator in Python
The walrus operator (:=
) is a new assignment operator introduced in Python 3.8. It allows you to assign values to variables as part of an expression, making certain constructs more concise.
Basic Usage
The basic syntax for the walrus operator is:
variable_name := expression
Here, variable_name
is assigned the value of expression
, and the result of the expression is also returned.
Example: Simplifying Code
Consider the following example where we find and print the length of a list if it's greater than 3:
# Without walrus operator
my_list = [1, 2, 3, 4]
if len(my_list) > 3:
length = len(my_list)
print(length)
# With walrus operator
my_list = [1, 2, 3, 4]
if (length := len(my_list)) > 3:
print(length)
In the second example, the walrus operator assigns the result of len(my_list)
to length
and then evaluates the condition.
Example: Loops
The walrus operator can also simplify loops by allowing assignments within the loop condition:
# Without walrus operator
while True:
data = input("Enter data: ")
if data == "quit":
break
print(data)
# With walrus operator
while (data := input("Enter data: ")) != "quit":
print(data)
In the second example, the walrus operator is used to assign and check the data
variable in a single line.
Use Cases and Benefits
The walrus operator is useful for:
- Reducing code redundancy
- Improving code readability
- Making code more concise
It is particularly beneficial in list comprehensions and conditional statements.
Example: List Comprehensions
The walrus operator can also be used in list comprehensions to avoid recalculating values:
# Without walrus operator
results = []
for x in range(10):
y = x**2
if y > 10:
results.append(y)
# With walrus operator
results = [y for x in range(10) if (y := x**2) > 10]
In the second example, the walrus operator eliminates the need for a separate assignment inside the loop.