优秀的编程知识分享平台

网站首页 > 技术文章 正文

在 Python 中使用 Walrus 运算符 (:=)

nanyue 2025-03-29 20:16:33 技术文章 7 ℃

在 Python 3.8 中引入的海象运算符 (:=),正式名称为赋值表达式,是一种将值赋值与表达式相结合的新语法。此运算符可以通过减少行数和重复表达式的需求来简化代码。

海象操作员的工作原理

walrus 运算符允许您将值作为较大表达式的一部分分配给变量。这意味着您可以计算表达式并将其结果分配给同一操作中的变量,这在需要重用值的循环和条件语句中特别有用。

语法和用法

walrus 运算符的基本语法是:

variable := expression

使用的 Walrus 运算符示例

1. 在 while 循环

海象运算符的一个常见场景是读取输入,直到满足特定条件:

# Collecting user input until a blank line is entered
lines = []
while (line := input("Enter something (leave blank to quit): ")) != "":
    lines.append(line)

2. 在列表推导中

您可以在理解中使用 walrus 运算符来执行操作并一次性过滤其结果:

import random

# Generating and filtering random numbers
numbers = [n for _ in range(10) if (n := random.randint(1, 100)) > 50]
print(numbers)

此示例生成 10 个随机数,并且仅包含列表中大于 50 的随机数,所有这些随机数都包含在一个简洁的表达式中。

3. 在条件语句中

海象运算符可用于同时分配和检查变量的条件:

# Checking the length of a list and using it in the same condition
a = [1, 2, 3]
if (n := len(a)) > 2:
    print(f"The list is long enough ({n} elements).")

在这里,计算列表 a 的长度,将其分配给 n,并在一行中签入。

walrus 运算符 (:=) 是 Python 的一个有价值的补充,它可以简化表达式中的赋值,从而获得更简洁、更高效的代码。它结合计算和赋值的能力在循环和条件语句中特别有用,减少了冗余并增强了代码的可读性。当您将 walrus 运算符合并到 Python 项目中时,您可能会发现许多场景都可以简化您的编码任务。

Tags:

最近发表
标签列表