跳到内容

unnecessary-call-around-sorted (C413)

Derived from the flake8-comprehensions linter. (源自 flake8-comprehensions linter。)

修复总是可用的。

作用

检查 sorted() 调用周围不必要的 list()reversed() 调用。

为什么这不好?

sorted() 周围使用 list() 是不必要的,因为后者已经返回一个列表。

sorted() 周围使用 reversed() 也是不必要的,因为后者有一个 reverse 参数,可以用来代替额外的 reversed() 调用。

在这两种情况下,避免冗余调用都更清晰和更高效。

示例

reversed(sorted(iterable))

建议改为

sorted(iterable, reverse=True)

修复安全性

此规则的修复被标记为不安全,因为在自定义排序键或相等函数的情况下,reversed()reverse=True 将产生不同的结果。 具体来说,reversed() 将反转集合的顺序,而 sorted()reverse=True 将执行稳定的反向排序,这将保留比较相等的元素的顺序。