跳到内容

list-reverse-copy (FURB187)

派生自 refurb 代码检查工具。

修复总是可用的。

作用

检查可以原地执行的列表反转,以避免创建新列表。

为什么这不好?

当反转列表时,如果不再需要原始列表,则使用原地方法 .reverse() 比创建新列表更有效。

示例

l = [1, 2, 3]
l = reversed(l)

l = [1, 2, 3]
l = list(reversed(l))

l = [1, 2, 3]
l = l[::-1]

建议改为

l = [1, 2, 3]
l.reverse()

修复安全性

此规则的修复被标记为不安全,因为在列表上调用 .reverse() 将会原地修改列表,这与创建新列表且不更改原始列表的 reversed 不同。

如果列表在其他地方被引用,这可能会导致意外行为。

参考