首页 > 解决方案 > 如何修复此列表的“SyntaxError:无效语法”?

问题描述

这是一个非常简单的代码:

a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
b = 1
c = [b*=i for i in a]
print(c)

我试图将列表 a 中的所有数字相乘,但第 3 行出现语法错误。如何修复代码?

标签: pythonlist

解决方案


=并且像它这样的增强版本不是评估为值的表达式。问题是,这就是列表推导所期望的:一个表达式。

理解由一个表达式组成,后跟至少一个 for 子句和零个或多个 for 或 if 子句。

为此,您需要 Python 3.8 和赋值表达式

[b := b * i for i in a]

没有结合*和的增强版本:=

考虑只使用一个完整的循环。


推荐阅读