我有以下代码,尝试在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
这是怎么回事?谢谢
答案 0 :(得分:1)
按照说的做;将generator expression括起来。这是您要排序的生成器表达式:
(e,i) for i,e in enumerate(myList)
当它是唯一参数时,Python会自动假定括号,但是如果有另一个参数,则必须显式添加括号,即
sorted(((e,i) for i,e in enumerate(myList)), reverse=True)