当我们需要对列表、元组、集合等数据类型中的元素进行迭代的时候,经常需要获取当前迭代到第几个元素。这时候,就可以使用Python内置的函数enumerate()
来为每个元素添加序号,从而更方便地进行迭代操作。
1. 添加序号
使用enumerate()
函数可以在迭代过程中为每个元素添加序号。enumerate()
函数的语法格式如下:
enumerate(iterable, start=0)
其中,iterable
表示需要添加序号的可迭代对象,start
表示设置序号的起始值,默认为0。
下面是一个简单的示例,演示了如何使用enumerate()
函数为列表中的元素添加序号:
fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits):
print(index, fruit)
输出结果为:
0 apple
1 banana
2 orange
2. 指定起始序号
我们可以使用start
参数指定序号的起始值,来满足更多场景的需求。下面的代码演示了如何设置起始值为1:
fruits = ['apple', 'banana', 'orange']
for index, fruit in enumerate(fruits, start=1):
print(index, fruit)
输出结果为:
1 apple
2 banana
3 orange
3. 序号与元素类型不一致
enumerate()
函数返回的是一个由元组组成的可迭代对象,其中每个元组都包含两个元素。第一个元素是元素在迭代过程中对应的序号,第二个元素是原来可迭代对象中对应的元素值。如果需要使用不同类型的序号,可以使用map()
函数对序号进行类型转换。下面的代码演示了如何使用map()
函数将序号转换成字符串类型:
fruits = ['apple', 'banana', 'orange']
for index, fruit in map(lambda i, x: (str(i), x), range(1, len(fruits) + 1), fruits):
print(index, fruit)
输出结果为:
1 apple
2 banana
3 orange
这里使用了lambda
函数和map()
函数将整数类型的序号转换成字符串类型的序号,从而达到了不同类型的序号的效果。