Python循环中定义range():用len()还是固定值哪个是最佳实践?
Python遍历数组索引的最佳实践
在实现原地排序算法这类需要操作数组索引的场景中,最佳实践是使用for i in range(len(array)):,而非for i in range(6):,原因如下:
- 可维护性与可读性:硬编码的
6属于"魔法数字",后续如果数组长度变更(比如调整为8),必须手动修改这个数值,容易遗漏导致逻辑错误;而len(array)直接关联数组本身,代码意图清晰,一眼就能看出是遍历整个数组的索引。 - 灵活性:使用
len(array)的代码可以适配任意长度的数组,无需修改循环条件,复用性更强。 - 符合Python核心哲学:这契合PEP 8中"显式优于隐式"的原则,同时也遵循了避免硬编码魔法数字的规范。
权威资料依据
- PEP 8(Python官方风格指南):明确指出应避免使用无注释的魔法数字,推荐通过与数据结构关联的方式(如
len())来推导数值,增强代码的可读性和可维护性。 - Python官方文档:在
range()函数的使用示例中,针对序列索引遍历场景,优先展示了结合len()的写法,作为通用的推荐范式。
内容的提问来源于stack exchange,提问作者spacedustpi
相关产品推荐
相关产品推荐

