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