enumerate() 函数用法示例
enumerate()
是 Python 中一个实用的内置函数,用于在遍历可迭代对象(如列表、元组、字符串等)时,同时获取元素的索引和值。以下是详细的用法示例和场景说明:
基础语法
enumerate(iterable, start=0)
- iterable: 必须是一个可迭代对象(如列表、字符串等)。
- start(可选): 指定索引的起始值,默认为
0
。
示例 1:遍历列表
fruits = ["apple", "banana", "cherry"]
for index, value in enumerate(fruits):
print(f"索引 {index} 对应的水果是 {value}")
输出:
索引 0 对应的水果是 apple
索引 1 对应的水果是 banana
索引 2 对应的水果是 cherry
示例 2:设置起始索引
for index, value in enumerate(fruits, start=1):
print(f"第 {index} 个水果是 {value}")
输出:
第 1 个水果是 apple
第 2 个水果是 banana
第 3 个水果是 cherry
示例 3:遍历字符串
text = "hello"
for idx, char in enumerate(text):
print(f"字符 '{char}' 的位置是 {idx}")
输出:
字符 'h' 的位置是 0
字符 'e' 的位置是 1
字符 'l' 的位置是 2
字符 'l' 的位置是 3
字符 'o' 的位置是 4
示例 4:处理多维列表
结合嵌套循环,遍历二维列表并打印行号和列号:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row_idx, row in enumerate(matrix):
for col_idx, value in enumerate(row):
print(f"行 {row_idx}, 列 {col_idx} 的值是 {value}")
输出:
行 0, 列 0 的值是 1
行 0, 列 1 的值是 2
行 0, 列 2 的值是 3
行 1, 列 0 的值是 4
行 1, 列 1 的值是 5
行 1, 列 2 的值是 6
行 2, 列 0 的值是 7
行 2, 列 1 的值是 8
行 2, 列 2 的值是 9
示例 5:结合其他函数使用
使用 enumerate()
生成带索引的元组列表:
indexed_fruits = list(enumerate(fruits, start=10))
print(indexed_fruits)
输出:
[(10, 'apple'), (11, 'banana'), (12, 'cherry')]
常见用途
- 需要同时访问索引和值的场景(如修改元素、记录位置)。
- 生成带索引的数据结构(如字典或元组列表)。
- 调试时跟踪元素位置。
通过 enumerate()
,可以避免手动维护索引变量,使代码更简洁高效。