enumerate
是 Python 中的一个内建函数,用于遍历可迭代对象(如列表、元组、字符串等)时,返回每个元素的索引和元素本身。它常常用于同时需要索引和元素的情况。
基本语法
enumerate(iterable, start=0)
iterable
:一个可迭代对象(如列表、元组、字符串等)。start
:可选参数,表示索引的起始值,默认从0
开始。
返回值
enumerate
返回一个 enumerate
对象,它是一个迭代器,包含了每个元素的索引和值。通过 for
循环或转换成其他数据结构(如列表)可以访问这些索引和元素。
示例
1. 基本用法
my_list = ['a', 'b', 'c']
for index, value in enumerate(my_list):
print(f"索引: {index}, 元素: {value}")
输出:
索引: 0, 元素: a
索引: 1, 元素: b
索引: 2, 元素: c
在这个例子中,enumerate
使得你能够在遍历 my_list
时同时获取元素的索引和值。
2. 使用 start
参数
my_list = ['a', 'b', 'c']
for index, value in enumerate(my_list, start=1):
print(f"索引: {index}, 元素: {value}")
输出:
索引: 1, 元素: a
索引: 2, 元素: b
索引: 3, 元素: c
通过指定 start=1
,索引从 1
开始,而不是默认的 0
。
3. 将 enumerate
转换为列表
my_list = ['a', 'b', 'c']
enumerated_list = list(enumerate(my_list))
print(enumerated_list)
输出:
[(0, 'a'), (1, 'b'), (2, 'c')]
此时 enumerate
返回的对象被转换为一个列表,其中每个元素是一个包含索引和元素的元组。
4. 使用在字符串中
my_string = "hello"
for index, char in enumerate(my_string):
print(f"索引: {index}, 字符: {char}")
输出:
索引: 0, 字符: h
索引: 1, 字符: e
索引: 2, 字符: l
索引: 3, 字符: l
索引: 4, 字符: o
enumerate
也可以用于字符串,返回每个字符的索引和字符本身。
5. 与其他函数配合使用
my_list = ['apple', 'banana', 'cherry']
result = {index: value for index, value in enumerate(my_list)}
print(result)
输出:
{0: 'apple', 1: 'banana', 2: 'cherry'}
在这个例子中,enumerate
和字典推导式配合使用,生成一个以索引为键、元素为值的字典。
总结
enumerate
用于遍历可迭代对象,并返回每个元素的索引和元素。- 你可以使用
start
参数来指定索引的起始值,默认为0
。 - 常用于需要同时获取元素索引和值的情况,简化了代码,避免了手动维护索引。