首页 > 解决方案 > `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

这是怎么回事?谢谢

标签: arrayspython-3.xsorting

解决方案


照它说的去做;将生成器表达式括起来。这是您尝试排序的生成器表达式:

(e,i) for i,e in enumerate(myList)

当它是唯一的参数时,Python会自动假设括号,但如果有另一个参数,你必须显式添加括号,即

sorted(((e,i) for i,e in enumerate(myList)), reverse=True)

推荐阅读