Python 中的 Walrus 运算符 :=
Manav Narula
2022年5月18日
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 运算符在表达式中分配变量 n
和 s
。然后,我们在表达式中使用这些变量并在之后显示它们。
作者: Manav Narula
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