Python3 enumerate() 函数

Python3 内置函数 Python3 内置函数


enumerate() 是 Python 中用于在遍历可迭代对象时同时获取索引和值的内置函数。

使用 enumerate() 可以方便地同时获取元素的索引(位置)和元素本身,避免使用额外的计数器变量。

单词释义enumerate 意为"枚举",表示逐一列举。


基本语法与参数

语法格式

enumerate(iterable, start=0)

参数说明

  • 参数 iterable
    • 类型: 可迭代对象
    • 描述: 要枚举的可迭代对象。
  • 参数 start(可选):
    • 类型: 整数
    • 描述: 索引起始值,默认为 0。

函数说明

  • 返回值: 返回一个 enumerate 对象(迭代器)。
  • 输出: 每次迭代返回 (index, value) 元组。

实例

示例 1:基础用法

实例

# 基础 enumerate 用法
fruits = ["苹果", "香蕉", "橙子"]

# 获取索引和值
for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")

# 默认从 0 开始
print("---")
for index, fruit in enumerate(fruits):
    print(fruit)

运行结果预期:

0: 苹果
1: 香蕉
2: 橙子
---
0: 苹果
1: 香蕉
2: 橙子

代码解析:

  1. enumerate 返回 (索引, 值) 元组。
  2. 默认索引从 0 开始。

示例 2:指定起始索引

实例

# 从 1 开始编号
fruits = ["苹果", "香蕉", "橙子"]

for i, fruit in enumerate(fruits, start=1):
    print(f"第{i}个水果: {fruit}")

# 从 10 开始
print("---")
for i, fruit in enumerate(fruits, start=10):
    print(f"索引 {i}: {fruit}")

运行结果预期:

第1个水果: 苹果
第2个水果: 香蕉
第3个水果: 橙子
---
索引 10: 苹果
索引 11: 香蕉
索引 12: 橙子

start 参数可以指定起始索引。

示例 3:转换为列表

实例

# 转换为列表
fruits = ["苹果", "香蕉", "橙子"]
result = list(enumerate(fruits))
print(result)  # 输出: [(0, '苹果'), (1, '香蕉'), (2, '橙子')]

# 转换为字典(如果值是字符串)
result = dict(enumerate(fruits))
print(result)  # 输出: {0: '苹果', 1: '香蕉', 2: '橙子'}

# 配合列表推导式
squares = [x**2 for x in range(5)]
indexed_squares = [(i, v) for i, v in enumerate(squares)]
print(indexed_squares)  # 输出: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16)]

运行结果预期:

enumerate 可以方便地转换为列表或字典。

示例 4:实际应用

实例

# 查找元素的索引
fruits = ["苹果", "香蕉", "橙子", "香蕉", "苹果"]
target = "香蕉"

for index, fruit in enumerate(fruits):
    if fruit == target:
        print(f"找到 {target} 在索引 {index}")
        break

# 配合条件查找所有匹配项
print("\n所有香蕉的位置:")
for index, fruit in enumerate(fruits):
    if fruit == "香蕉":
        print(index, end=" ")  # 输出: 1 3

# 字符串中查找字符位置
text = "hello"
for i, c in enumerate(text):
    print(f"'{c}' 在位置 {i}")

运行结果预期:

enumerate 常用于需要索引的场景,如查找、替换等操作。

示例 5:与字典配合

实例

# 字典的 enumerate
person = {"name": "Tom", "age": 20, "city": "Beijing"}

# 遍历字典的键值对(需要 items)
for index, (key, value) in enumerate(person.items()):
    print(f"{index}: {key} = {value}")

# 创建带序号的字典
items = ["a", "b", "c"]
numbered = {i+1: v for i, v in enumerate(items)}
print(numbered)  # 输出: {1: 'a', 2: 'b', 3: 'c'}

运行结果预期:

enumerate 与字典配合使用时需要使用 items() 方法。


Python3 内置函数 Python3 内置函数