arrays - `sorted()` 在 python3 中出现 `SyntaxError`
问题描述
我有以下代码,它尝试在 python3 中使用其索引对列表进行排序:
myList = [1,3,4,5,6]
sorted((e,i) for i,e in enumerate(myList))
上面的代码工作正常。但是当我尝试通过
sorted((e,i) for i,e in enumerate(myList),reverse=True)
我明白了
SyntaxError: Generator expression must be parenthesized if not sole argument
这是怎么回事?谢谢
解决方案
照它说的去做;将生成器表达式括起来。这是您尝试排序的生成器表达式:
(e,i) for i,e in enumerate(myList)
当它是唯一的参数时,Python会自动假设括号,但如果有另一个参数,你必须显式添加括号,即
sorted(((e,i) for i,e in enumerate(myList)), reverse=True)
推荐阅读
- firebase - Firebase Messaging 无法发送后台消息 Flutter
- javascript - 在 Chrome 和 Edge 中使用 Javascript 更改 iFrame 大小闪烁
- python - 这是我试图在 Jupyter 上运行的一个简单代码,它来了
- turtle-graphics - 运行乌龟代码时没有创建新窗口
- docker - Nginx 代理传递到 dockerized gunicorn 服务器
- c++ - 带有 if 语句的函数没有返回值
- testing - Testcafe - 锤头阴影 UI 的加载图标可见
- python - 我想做 django 聊天应用程序
- powershell - 创建一个具有 3 个标题的对象:用户、ID、时间
- flutter - Flutter 使用视频播放器或 ffmpeg 获取视频帧