Python基础之enumerate()函数用法详解
作者:Geoking.
一、enumerate()是什么?
emurate /ɪˈnjuːməreɪt/
中文名即为枚举
日常 Python 编程中,我们经常需要在遍历列表、元组或字符串时,同时获取元素的索引和值。
如果你曾这样写过代码👇:
index = 0
for value in ['a', 'b', 'c']:
print(index, value)
index += 1
那恭喜你,是时候认识一个更优雅的 Python 内置函数——enumerate() 🎯。
enumerate() 是 Python 的内置函数,用于在 遍历可迭代对象时自动计数。
它返回一个 枚举对象(enumerate object),其中每个元素是一个 (index, value) 元组。
二、基本语法
enumerate(iterable, start=0)
参数说明:
iterable:可迭代对象(如列表、元组、字符串等)start:索引的起始值(默认从 0 开始)
返回值:
- 一个可迭代的
enumerate对象
三、基本用法示例
fruits = ['apple', 'banana', 'cherry']
for index, fruit in enumerate(fruits):
print(index, fruit)
输出:
0 apple
1 banana
2 cherry
可以看到,enumerate() 自动为我们生成了索引。
四、自定义起始索引
有时候我们不希望从 0 开始计数,比如行号通常从 1 开始。
可以使用 start 参数来自定义:
for index, fruit in enumerate(fruits, start=1):
print(f"第{index}个水果是 {fruit}")
输出:
第1个水果是 apple
第2个水果是 banana
第3个水果是 cherry
五、enumerate()的底层原理
enumerate() 实际上等价于下面这种写法:
def my_enumerate(iterable, start=0):
n = start
for elem in iterable:
yield n, elem
n += 1
它返回的是一个生成器(iterator),在循环中逐步生成索引和值,因此不会占用额外的内存。
六、与普通循环的对比
| 功能 | 普通循环 | 使用 enumerate() |
|---|---|---|
| 需要手动维护索引 | ✅ 是 | ❌ 否 |
| 可读性 | 一般 | 更高 |
| 内存占用 | 相似 | 相似 |
| 推荐使用 | ❌ 不推荐 | ✅ 推荐 |
示例对比:
# 传统写法
for i in range(len(fruits)):
print(i, fruits[i])
# enumerate 写法(更简洁)
for i, fruit in enumerate(fruits):
print(i, fruit)
下次你再需要索引和元素同时出现时,
记得:
不要再用
range(len(...)),直接用enumerate()
七、结合条件语句的高级用法
enumerate() 常常与条件判断搭配使用,用来查找特定元素的位置。
nums = [10, 20, 30, 40, 50]
for i, num in enumerate(nums):
if num == 30:
print(f"找到了 30,在索引 {i}")
输出:
找到了 30,在索引 2
八、与其他可迭代对象一起使用
enumerate() 不仅能用于列表,也能用于 字符串、元组、集合、字典(遍历 key 或 value) 等。
遍历字符串:
for i, ch in enumerate("Python"):
print(i, ch)
输出:
0 P
1 y
2 t
3 h
4 o
5 n
遍历字典的键:
data = {'a': 1, 'b': 2, 'c': 3}
for i, key in enumerate(data):
print(i, key, data[key])
输出:
0 a 1
1 b 2
2 c 3
九、将枚举对象转换为列表或字典
enumerate() 返回的是一个枚举对象,我们可以直接转换为其他类型。
fruits = ['apple', 'banana', 'cherry']
# 转换为列表
print(list(enumerate(fruits)))
# [(0, 'apple'), (1, 'banana'), (2, 'cherry')]
# 转换为字典
print(dict(enumerate(fruits, start=1)))
# {1: 'apple', 2: 'banana', 3: 'cherry'}
这在数据映射或索引管理时非常实用。
📚 参考资料

总结
到此这篇关于Python基础之enumerate()函数用法的文章就介绍到这了,更多相关Python基础enumerate()函数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
