sorted()在python3中出现SyntaxError

时间:2019-08-27 23:43:09

标签: arrays python-3.x sorting

我有以下代码,尝试在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

这是怎么回事?谢谢

1 个答案:

答案 0 :(得分:1)

按照说的做;将generator expression括起来。这是您要排序的生成器表达式:

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

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

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