sfy-cnblogs

导航

enumerate () 函数详细用法

enumerate () 函数详细用法
enumerate() 是 Python 内置函数,核心作用是:遍历可迭代对象(列表、字符串、元组等)时,同时获取「元素的索引」和「元素本身」,替代手动写计数器的繁琐操作。
一、基础语法
python
运行
enumerate(iterable, start=0)
参数说明
iterable:必填,可迭代对象(列表、字符串、元组、集合、生成器等)
start:可选,索引起始值,默认从 0 开始
返回值
返回一个枚举对象,本质是迭代器,每个元素是 (索引, 元素值) 元组。
二、核心用法:遍历同时拿索引 + 元素
这是最常用的场景,直接配合 for 循环使用:
示例 1:默认索引从 0 开始
python
运行

定义列表

fruits = ["苹果", "香蕉", "橙子", "葡萄"]

用 enumerate 遍历

for index, value in enumerate(fruits):
print(f"索引:{index},元素:{value}")
输出结果:
plaintext
索引:0,元素:苹果
索引:1,元素:香蕉
索引:2,元素:橙子
索引:3,元素:葡萄
示例 2:自定义索引起始值(start=1)
日常场景中,我们常需要从 1 开始计数(比如排名、序号),直接改 start 参数即可:
python
运行
fruits = ["苹果", "香蕉", "橙子", "葡萄"]

索引从 1 开始

for index, value in enumerate(fruits, start=1):
print(f"第{index}名:{value}")
输出结果:
plaintext
第1名:苹果
第2名:香蕉
第3名:橙子
第4名:葡萄
三、进阶用法

  1. 转换为列表查看枚举对象
    直接打印 enumerate() 看不到内容,转列表就能看到所有 (索引, 元素) 元组:
    python
    运行
    fruits = ["苹果", "香蕉"]
    print(list(enumerate(fruits)))

输出:[(0, '苹果'), (1, '香蕉')]

print(list(enumerate(fruits, start=10)))

输出:[(10, '苹果'), (11, '香蕉')]

  1. 遍历字符串(按字符索引)
    python
    运行
    s = "Python"
    for idx, char in enumerate(s):
    print(f"索引{idx}:{char}")
  2. 遍历元组 / 集合
    python
    运行

元组

t = (10, 20, 30)
for i, v in enumerate(t):
print(i, v)

集合(注意:集合无序,索引不固定)

s = {1, 2, 3}
for i, v in enumerate(s):
print(i, v)
四、为什么要用 enumerate ()?
对比传统手动计数器的写法,你就能感受到它的简洁:
❌ 不推荐:手动维护索引
python
运行
fruits = ["苹果", "香蕉", "橙子"]
index = 0
for fruit in fruits:
print(index, fruit)
index += 1 # 每次都要手动+1,代码冗余
✅ 推荐:enumerate () 自动管理索引
python
运行
fruits = ["苹果", "香蕉", "橙子"]
for index, fruit in enumerate(fruits):
print(index, fruit) # 简洁、优雅、无冗余代码
五、常见坑点提醒
enumerate 只返回索引 + 元素,不会修改原数据
集合 / 字典是无序的(Python3.7 + 字典有序),用 enumerate 遍历的索引顺序不固定
start 只是索引起始值,和元素本身无关
总结
enumerate() = 遍历可迭代对象 + 自动生成索引
语法:for 索引, 元素 in enumerate(可迭代对象, start=起始值)
核心优势:替代手动计数器,代码更简洁、易读
适用场景:所有需要「索引 + 元素」的遍历场景(列表、字符串、元组等)

posted on 2026-05-06 06:15  睡佛爷  阅读(22)  评论(0)    收藏  举报