从开始
Python 3.8,并引入赋值表达式(PEP
572)(
:=运算符),可以在列表推导中使用局部变量,以避免调用同一函数两次:
在我们的例子中,我们可以使用表达式的结果来过滤列表时将的评估命名
map_to_obj(v)为变量
o。并因此
o用作映射值:
[o for v in [v1, v2, v3, v4] if (o := map_to_obj(v))]

从开始
Python 3.8,并引入赋值表达式(PEP
:=运算符),可以在列表推导中使用局部变量,以避免调用同一函数两次:
在我们的例子中,我们可以使用表达式的结果来过滤列表时将的评估命名
map_to_obj(v)为变量
o。并因此
o用作映射值:
[o for v in [v1, v2, v3, v4] if (o := map_to_obj(v))]