python - 如何修复此列表的“SyntaxError:无效语法”?
问题描述
这是一个非常简单的代码:
a = [1, 2, 3, 4, 5, 6, 7, 8, 9]
b = 1
c = [b*=i for i in a]
print(c)
我试图将列表 a 中的所有数字相乘,但第 3 行出现语法错误。如何修复代码?
解决方案
=
并且像它这样的增强版本不是评估为值的表达式。问题是,这就是列表推导所期望的:一个表达式。
理解由一个表达式组成,后跟至少一个 for 子句和零个或多个 for 或 if 子句。
为此,您需要 Python 3.8 和赋值表达式:
[b := b * i for i in a]
没有结合*
和的增强版本:=
。
考虑只使用一个完整的循环。
推荐阅读
- c# - 从 c# mongo db driver 执行 mongo db shell 查询(最新)
- javascript - 如何使用 sequelize 验证模型?
- java - 无法提交文件 - Maven 和 IntelliJ
- r - 这个 R 语法是如何工作的?在 for 循环中通过 [apply() 和 match()] 选择性使用 gsub()
- html - Safari:背景图像未显示
- python - 如何使用 Python 从 html 文本中提取信息
- python - 在服务中找不到 Python 库
- java - Java - 如何从测试文件夹访问根文件夹中的文件
- python - Docker Compose 容器立即退出
- powershell - 需要帮助结合两个 powershell 命令以在 docker 中自动进行端口转发(在 vmware 上)