Python 3.8 中引入,利用“海象”运算符 (:=) 提供赋值表达式显着的语言增强,支持在推导式和 lambda 中进行赋值。
赋值表达式是形式为 name := expr 的命名表达式,其中 name 是标识符,expr 是任何有效的表达式。该表达式计算 expr 的值,同时将该值分配给 name。
添加赋值表达式的主要动机是:
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>
b) 简化列表推导式
示例:
<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>
赋值表达式与常规不同在几个方面进行赋值:
以上是什么是赋值表达式以及它们在 Python 中如何工作?的详细内容。更多信息请关注PHP中文网其他相关文章!