【问题标题】:`sorted()` occurs `SyntaxError` in python3`sorted()` 在 python3 中出现 `SyntaxError`
【发布时间】:2019-08-27 23:43:09
【问题描述】:

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

这是怎么回事?谢谢

【问题讨论】:

    标签: arrays python-3.x sorting


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      • 2019-02-08
      • 2014-04-07
      • 1970-01-01
      • 2021-12-11
      • 2019-04-19
      相关资源
      最近更新 更多