incorrect-dict-iterator (PERF102)
源自 Perflint linter。
修复总是可用的。
作用
检查在迭代字典时,使用了 dict.items()
但丢弃了键或值的情况。
为什么这不好?
如果只需要字典的键或值,则应分别使用 dict.keys()
或 dict.values()
,而不是 dict.items()
。这些专用方法比 dict.items()
更高效,因为它们避免了为字典中的每个项目分配元组。它们也更清晰地传达了代码的意图。
请注意,与所有 perflint
规则一样,这仅用作微优化,并且在大多数情况下对性能的影响可以忽略不计。
示例
建议改为
修复安全性
此修复不会执行任何类型分析,因此,如果相关对象未作为映射进行鸭子类型(例如,如果它缺少 .keys()
或 .values()
方法,或者这些方法的行为与标准映射类型上的行为不同),则可能会建议错误的修复。