Python 中的 Walrus 运算符 :=

Manav Narula 2022年5月18日
Python 中的 Walrus 运算符 :=

Python 用户在进行新更改时会收到定期更新,并且每次更新都会添加功能。在 Python 3.8 中,引入了 Walrus 运算符 :=。这是一个赋值运算符。

我们将在本教程中讨论 Walrus 运算符。

Python 中的 Walrus 运算符

与分配值的传统赋值运算符 = 不同,Walrus 运算符:= 可以分配值并同时返回变量。此运算符对于在表达式中分配值很有帮助。

在使用此运算符时,我们使用括号为变量赋值。

例如:

(a := 5)
print(a)

输出:

5

Walrus 运算符很有用,因为它允许我们在许多情况下避免重复语句。我们可以在表达式的上下文中将值分配给可能尚不存在的变量。

a = [1, 2, 3]
if (n := len(a)) > 5:
    pass
print(n)

输出:

3

如果我们使用传统的赋值运算符,上面的代码会报错。然而,由于我们使用了 Walrus 运算符,我们可以在表达式中定义 n 的值并在之后使用它。

现在让我们再举一个例子。

a = [1, 2, 3]
d = {1: len(a), 2: sum(a), 3: sum(a) / len(a)}
print(d)

输出:

{1: 3, 2: 6, 3: 2.0}

在上面的例子中,我们计算了两次列表的长度和总和。我们可以使用 Walrus 运算符来避免这种情况。

使用此运算符,我们可以在表达式中为长度和总和分配变量。

例如:

a = [1, 2, 3]
d = {1: (n := len(a)), 2: (s := sum(a)), 3: (n / s)}
print(d, n, s)

输出:

{1: 3, 2: 6, 3: 0.5} 3 6

在这里,我们使用 Walrus 运算符在表达式中分配变量 ns。然后,我们在表达式中使用这些变量并在之后显示它们。

作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相关文章 - Python Operator