跳到内容

enumerate-for-loop (SIM113)

源自 flake8-simplify 代码检查器。

作用

检查具有显式循环索引变量的 for 循环,这些变量可以用 enumerate() 替换。

为什么这不好?

当迭代序列时,通常希望跟踪每个元素的索引以及元素本身。 优先使用 enumerate 内置函数,而不是手动递增循环内的计数器变量,因为 enumerate 更简洁且符合习惯用法。

示例

fruits = ["apple", "banana", "cherry"]
i = 0
for fruit in fruits:
    print(f"{i + 1}. {fruit}")
    i += 1

建议改为

fruits = ["apple", "banana", "cherry"]
for i, fruit in enumerate(fruits):
    print(f"{i + 1}. {fruit}")

参考