Python 的 for 循环中如何同时获取索引和元素?

用 enumerate():for i, item in enumerate(items) 同时拿到下标与元素,start 参数可改起始值。避免 range(len()) 的写法。本文给出示例与常见变体。

最佳实践
Python 的 for 循环中如何同时获取索引和元素?封面

用内置函数 enumerate()for i, item in enumerate(items)——i 是下标、item 是元素;enumerate(items, start=1) 可从 1 开始计数。

标准用法

fruits = ['apple', 'banana', 'cherry']

for i, fruit in enumerate(fruits):
    print(i, fruit)
# 0 apple / 1 banana / 2 cherry

for i, fruit in enumerate(fruits, start=1):   # 从 1 开始
    print(i, fruit)

反例与正例

# ❌ 不推荐:先取长度再按下标取
for i in range(len(fruits)):
    print(i, fruits[i])

# ✅ 推荐:enumerate 直接解包
for i, fruit in enumerate(fruits): ...

相关技巧

# 只要序号计数:直接用 enumerate 而不是手动维护计数器
# 同时遍历两个列表:zip
for a, b in zip(names, scores): ...
# 三个都要:enumerate + zip 组合
for i, (a, b) in enumerate(zip(names, scores)): ...

常见问题(FAQ)

Q:enumerate 返回的是什么? 惰性迭代器,不占额外内存;list(enumerate(x)) 可得到 (index, value) 元组列表。

Q:字典能用 enumerate 吗? 可以但语义是"第几个键";遍历键值用 dict.items()

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台