☰
Python 中的 enumerate()方法
2026/11/5 3:58:41 网站建设 项目流程

enumerate()是 Python 的一个内置函数,用于在遍历可迭代对象(如列表、元组、字符串)时,同时获取元素的索引(序号)和值。

1. 基本语法

enumerate(iterable, start=0)
  • iterable:可迭代对象(列表、字符串等)。

  • start:索引的起始值,默认是0。

2. 为什么需要它?

在没有enumerate()时,如果想同时拿到索引和值,通常会写得很繁琐:

# 传统写法(不推荐) fruits = ["苹果", "香蕉", "橘子"] for i in range(len(fruits)): print(f"索引 {i}: {fruits[i]}")

使用了enumerate()后,代码变得非常优雅:

# enumerate 写法(推荐) fruits = ["苹果", "香蕉", "橘子"] for index, fruit in enumerate(fruits): print(f"索引 {index}: {fruit}")

3. 其他用法

指定起始索引(start参数)
如果希望序号从 1 开始,而不是默认的 0:

fruits = ["苹果", "香蕉", "橘子"] for index, fruit in enumerate(fruits, start=1): print(f"第 {index} 个水果是: {fruit}") # 输出: # 第 1 个水果是: 苹果 # 第 2 个水果是: 香蕉 # 第 3 个水果是: 橘子

转换为列表或字典
enumerate()返回的是一个迭代器。如果直接打印它,会得到一个对象地址;如果把它转成列表,就能看到它生成的内容:

fruits = ["苹果", "香蕉"] print(list(enumerate(fruits))) # 输出: [(0, '苹果'), (1, '香蕉')] # 转换为字典(常用于快速建立索引映射) print(dict(enumerate(fruits))) # 输出: {0: '苹果', 1: '香蕉'}

4. 底层本质

enumerate()本质上是一个生成器。当在for循环中使用它时,每次迭代它会吐出一个(index, value)的元组。

因此,也可以手动使用next()来取值:

fruits = ["苹果", "香蕉"] e = enumerate(fruits) print(next(e)) # 输出: (0, '苹果') print(next(e)) # 输出: (1, '香蕉')

所以只要需要在for循环中同时用到索引和元素值,首选enumerate(),它会比手动维护一个计数器或者用range(len(...))更加优雅简洁。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询