python - 在 zip 对象上使用 for 循环时出现无效的语法错误
问题描述
我正在学习如何优化 python 3.7 中的循环,但我不断收到“无效的语法错误”。我已经检查了缺少的括号。这是代码:
best = probabilities[0]
best = (probabilities[i] for i in range(1, len(probabilities)) if probabilities[i] > best)
print(best)
prob, im = (prob, im for prob, im in zip(probabilities, image_names) if prob == best)
return (prob, im)
给我错误
File "path", line 27
prob, im = (prob, im for prob, im in zip(probabilities, image_names) if prob == best)
^
SyntaxError: invalid syntax
我不确定出了什么问题,因为我在另一个练习中使用的以下代码使用了几乎相同的语法:
im = [im for im, prob in zip(image_names, probabilities) if prob >= threshold]
return (im)
编辑:我也试过
return (prob, im for prob, im in zip(probabilities, image_names) if prob == best)
它说变量类型是 Generator[tuple[float, str], Any, None] 但我不确定它是什么意思。
任何帮助将不胜感激
解决方案
()
元组在由理解/生成器表达式生成时需要显式包装:
((prob, im) for prob, im in zip(probabilities, image_names) if prob == best)
推荐阅读
- python-3.x - 如何从选项卡中获取图标(而不是从网站内容中)
- c# - InvalidCastException 将 PlayFab.Json.JsonObject 转换为 PlayFab.PlayFabResult C# PlayFab
- html - 如何将 HTML 中的项目与响应性对齐?
- azure - 数据资源管理器:自定义分区策略的大量范围
- amazon-web-services - 是否可以更改 AWS KMS CMK 的所有权?
- wordpress - 有没有办法阻止优惠被添加到订阅中
- docker - 在“terraform apply”上 ping docker 服务器时出错
- c++ - 使用 gtest 测试共享库 (.so)
- java - 旋转 Y 轴以翻转纹理朝向反转 X 轴
- python - 运行 AWS eb 状态时出现 Python 错误