首頁  >  文章  >  後端開發  >  什麼是賦值表達式以及它們在 Python 中如何運作?

什麼是賦值表達式以及它們在 Python 中如何運作?

Susan Sarandon
Susan Sarandon原創
2024-10-30 21:42:30181瀏覽

What are Assignment Expressions and How Do They Work in Python?

Python 中的賦值表達式:「海象」運算子(=:)

Python 3.8 中引入,利用「海象」運算子(:=) 提供賦值表達式顯著的語言增強,支援在推導式和lambda 中進行賦值。

語法和語意

賦值表達式是形式為 name := expr 的命名表達式,其中 name 是標識符,expr 是任何有效的表達式。此表達式計算 expr 的值,同時將該值指派給 name。

介紹的基本原理

加入賦值表達式的主要動機是:

  • 允許在禁止傳統賦值的上下文中進行賦值,例如列表推導式和lambda。
  • 透過促進簡單的值賦值來增強互動式除錯。

使用範例

a) 取得條件值

而不是:

<code class="python">command = input("> ")
while command != "quit":
    print("You entered:", command)
    command = input("> ")</code>

而不是:
<code class="python">while (command := input("> ")) != "quit":
    print("You entered:", command)</code>

而不是:

賦值表達式允許表達:
<code class="python">[(lambda y: [y, x/y])(x+1) for x in range(5)]</code>

<code class="python">[[y := x+1, x/y] for x in range(5)]</code>
b) 簡化列表推導式

範例:

  • 可以簡化為:
  • 可以簡化🎜>
  • 與常規賦值的主要區別
  • 賦值表達式與常規不同在幾個方面進行賦值:
它們是從右到左計算的。 它們的優先權與逗號不同。 它們不支援多個目標,對非單一名稱的賦值,或可迭代的打包/解包。 也不支援內嵌類型註解和增強賦值。

以上是什麼是賦值表達式以及它們在 Python 中如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn