Python

Python enumerate() 快速笔记

Python enumerate() 快速笔记

作用

遍历可迭代对象时,同时获取:

  • 索引(index)
  • 元素(value)

基本语法

enumerate(iterable, start=0)

参数:

  • iterable:列表、元组、字符串等可迭代对象
  • start:起始索引,默认 0

最常用写法

fruits = ["apple", "banana", "orange"]

for index, fruit in enumerate(fruits):
    print(index, fruit)

输出:

0 apple
1 banana
2 orange

自定义起始索引

for index, fruit in enumerate(fruits, start=1):
    print(index, fruit)

输出:

1 apple
2 banana
3 orange

常用于:

  • 排名
  • 序号
  • 编号展示

本质

list(enumerate(["a", "b", "c"]))

结果:

[(0, 'a'), (1, 'b'), (2, 'c')]

每个元素实际上是:

(index, value)

遍历字符串

for i, char in enumerate("hello"):
    print(i, char)

输出:

0 h
1 e
2 l
3 l
4 o

遍历字典

data = {
    "name": "Tom",
    "age": 18,
}

for i, (key, value) in enumerate(data.items()):
    print(i, key, value)

输出:

0 name Tom
1 age 18

常见业务场景

给检索结果编号

for i, doc in enumerate(docs, start=1):
    print(f"[{i}] {doc}")

商品推荐排序

for rank, product in enumerate(products, start=1):
    print(f"Top {rank}: {product}")

忽略元素

只需要索引:

for i, _ in enumerate(items):
    print(i)

推荐写法

❌ 不推荐

for i in range(len(items)):
    item = items[i]

✅ 推荐

for i, item in enumerate(items):
    ...

原因:

  • 更简洁
  • 可读性更好
  • Python 社区标准写法
  • 减少索引操作

记忆口诀

for 索引, 元素 in enumerate(列表, start=起始值):
    ...

看到需要同时拿到 下标 + 值,直接想到:

enumerate()