📜  Python 3.8 中的海象运算符

📅  最后修改于: 2022-05-13 01:54:44.478000             🧑  作者: Mango

Python 3.8 中的海象运算符

Python 3.8 仍在开发中。但是已经发布了许多 alpha 版本。 Python 3.8 的最新功能之一是海象运算符。在这篇文章中,我们将讨论海象运算符并用一个例子来解释它。

介绍

Walrus-operator 是赋值表达式的另一个名称。根据官方文档,这是一种使用符号 NAME := expr 在表达式中分配变量的方法。赋值表达式允许在表达式上下文中将值分配给变量,甚至是尚不存在的变量,而不是作为独立语句。

代码 :

a = [1, 2, 3, 4]
if (n := len(a)) > 3:
    print(f"List is too long ({n} elements, expected <= 3)")

输出 :

这里没有在两个地方使用“len(a)”,而是将它分配给一个名为“n”的变量,以后可以使用它。这有助于我们解决代码重复并提高可读性。

例子 -

让我们借助一个同时使用Python 3.7 和Python 3.8 的示例来更清楚地理解赋值表达式。这里我们有一个名为“sample_data”的字典列表,其中包含 userId、name 和一个名为 Completed 的布尔值。

sample_data = [
    {"userId": 1,  "name": "rahul", "completed": False},
    {"userId": 1, "name": "rohit", "completed": False},
    {"userId": 1,  "name": "ram", "completed": False},
    {"userId": 1,  "name": "ravan", "completed": True}
]
  
print("With Python 3.8 Walrus Operator:") 
for entry in sample_data: 
    if name := entry.get("name"):
        print(f'Found name: "{name}"')
  
print("Without Walrus operator:")
for entry in sample_data:
    name = entry.get("name")
    if name:
        print(f'Found name: "{name}"')

输出: