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名:葡萄
三、进阶用法
- 转换为列表查看枚举对象
直接打印 enumerate() 看不到内容,转列表就能看到所有 (索引, 元素) 元组:
python
运行
fruits = ["苹果", "香蕉"]
print(list(enumerate(fruits)))
输出:[(0, '苹果'), (1, '香蕉')]
print(list(enumerate(fruits, start=10)))
输出:[(10, '苹果'), (11, '香蕉')]
- 遍历字符串(按字符索引)
python
运行
s = "Python"
for idx, char in enumerate(s):
print(f"索引{idx}:{char}") - 遍历元组 / 集合
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=起始值)
核心优势:替代手动计数器,代码更简洁、易读
适用场景:所有需要「索引 + 元素」的遍历场景(列表、字符串、元组等)
本文来自博客园,作者:{睡佛爷},转载请注明原文链接:{https://www.cnblogs.com/sfy-cnblogs.com}
浙公网安备 33010602011771号