📅  最后修改于: 2023-12-03 15:09:46.216000             🧑  作者: Mango
在 Python 中,我们可以使用 for
循环来遍历一个列表、元组、字符串等可迭代对象中的每一个元素。但是,在很多情况下,我们需要知道当前所遍历元素的索引,这时需要使用带索引的 Python 循环。
enumerate()
函数Python 提供了一个内置函数 enumerate()
,它可以将一个可迭代对象转换为一个枚举对象,其中每个元素都是一个包含当前索引和对应元素的元组。
fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
print(index, fruit)
输出:
0 apple
1 banana
2 orange
在上面的例子中,enumerate()
函数将列表 fruits
转化为一个枚举对象,每个元素都是一个包含当前索引和对应元素的元组。在 for
循环中,可以使用两个变量 index
和 fruit
分别接收每个元素的索引和值,然后打印出来。
需要注意的是,枚举对象的起始索引可以通过第二个参数进行指定。例如,enumerate(fruits, start=1)
可以将起始索引设为 1。
range()
函数和 len()
函数在某些情况下,可能需要在循环中手动计算索引。此时,可以使用 range()
函数和 len()
函数来实现。
fruits = ['apple', 'banana', 'orange']
for i in range(len(fruits)):
print(i, fruits[i])
输出:
0 apple
1 banana
2 orange
在上面的例子中,range(len(fruits))
可以生成一个从 0 到 len(fruits) - 1
的整数序列。在 for
循环中,可以使用 range()
函数生成的索引来访问列表中的元素。
需要注意的是,使用 range()
和 len()
函数来遍历列表的性能比使用 enumerate()
函数来遍历列表要差一些,因为每次循环都需要计算列表的长度。因此,建议仅在必要时使用这种方式。
带索引的 Python 循环可以使用 enumerate()
函数或 range()
函数和 len()
函数来实现,具体选择哪种方式取决于具体的需求和性能要求。在实际使用中,建议充分利用内置函数来简化代码、提高效率。