sorted-min-max (FURB192)
派生自 refurb 代码检查工具。
有时提供修复。
此规则不稳定且处于预览状态。使用需要 --preview
标志。
作用
检查是否使用 sorted()
来检索序列中的最小值或最大值。
为什么这不好?
使用 sorted()
来计算序列中的最小值或最大值效率低下,并且不如直接使用 min()
或 max()
更易读。
示例
nums = [3, 1, 4, 1, 5]
lowest = sorted(nums)[0]
highest = sorted(nums)[-1]
highest = sorted(nums, reverse=True)[0]
建议改为
修复安全性
在某些情况下,迁移到 min
或 max
可能会导致行为改变,尤其是在打破平局时。
例如,如果列表中有多个具有相同键的元素,sorted(data, key=itemgetter(0), reverse=True)[0]
将返回列表中的最后一个“最小值”元素。但是,在相同情况下,min(data, key=itemgetter(0))
将返回列表中的第一个“最小值”元素。
因此,当使用 reverse
关键字时,此规则的修复被标记为不安全。