
在 Python 3.8 中引入的海象运算符 (:=),正式名称为赋值表达式,是一种将值赋值与表达式相结合的新语法。此运算符可以通过减少行数和重复表达式的需求来简化代码。
海象运算符的工作原理walrus 运算符允许您将值作为较大表达式的一部分分配给变量。这意味着您可以计算表达式并将其结果分配给同一操作中的变量,这在需要重用值的循环和条件语句中特别有用。
语法和用法walrus 运算符的基本语法是:
variable := expression使用的 Walrus 运算符示例1. 在 while 循环中
海象运算符的一个常见场景是读取输入,直到满足特定条件:
# Collecting user input until a blank line is enteredlines = []while (line := input("Enter something (leave blank to quit): ")) != "": lines.append(line)2. 在列表推导中您可以在理解中使用 walrus 运算符来执行操作并一次性过滤其结果:
import random# Generating and filtering random numbersnumbers = [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 conditiona = [1, 2, 3]if (n := len(a)) > 2: print(f"The list is long enough ({n} elements).")在这里,计算列表 a 的长度,将其分配给 n,并在一行中签入。
walrus 运算符 (:=) 是 Python 的一个有价值的补充,它可以简化表达式中的赋值,从而获得更简洁、更高效的代码。它结合计算和赋值的能力在循环和条件语句中特别有用,减少了冗余并增强了代码的可读性。当您将 walrus 运算符合并到 Python 项目中时,您可能会发现许多场景都可以简化您的编码任务。