欢迎光临
我们一直在努力

Python 基础详解:enumerate() 函数

请添加图片描述

文章目录

    • 请添加图片描述
    • 一、`enumerate()` 是什么?
    • 二、基本语法
    • 三、基本用法示例
    • 四、自定义起始索引
    • 五、`enumerate()` 的底层原理
    • 六、与普通循环的对比
    • 七、结合条件语句的高级用法
    • 八、与其他可迭代对象一起使用
      • 遍历字符串:
      • 遍历字典的键:
    • 九、将枚举对象转换为列表或字典
    • 📚 参考资料

一、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()

  • Real Python 教程:Looping Techniques

赞(0)
未经允许不得转载:171主机测评 » Python 基础详解:enumerate() 函数
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址