欢迎访问宙启技术站
智能推送

Python中的enumerate()函数:将序列中的元素及其索引值一起迭代,并返回一个可迭代的对象

发布时间:2023-06-24 20:43:44

Python中的enumerate()函数是一个非常有用的函数,它可以帮助我们在迭代序列时同时获取元素的值和对应的索引。这个函数非常方便,尤其是在需要遍历序列元素的同时需要用到它们的索引时。

下面我们就来详细讲解一下Python中的enumerate()函数。

1. enumerate()函数的定义

enumerate()函数的定义如下:

enumerate(sequence, start=0)

sequence:要迭代的序列,可以是列表、元组、字符串、集合等可迭代对象。

start:指定序列中元素的索引值起始位置,可以省略,默认为0。

2. enumerate()函数的使用

我们可以通过以下Python代码来了解enumerate()函数的用法:

animals = ['cat', 'dog', 'tiger', 'lion']
for index, animal in enumerate(animals):
    print(index, animal)

在上面的代码中,我们定义了一个名为 animals 的列表,并用 enumerate() 函数遍历了它的每一个元素,同时打印出了它的索引值和元素值。因为我们使用了 enumerate() 函数,所以可以在遍历的同时获取每个元素的索引值。

输出结果如下:

0 cat
1 dog
2 tiger
3 lion

从输出结果中可以看出, 个元素的索引值为0,第二个元素的索引值为1,依此类推。

3. enumerate()函数的应用场景

enumerate()函数在很多场景中都非常有用,例如:

(1)在 for 循环中需要同时获取元素的值和它们的索引值。

例如,您需要根据每个学生的成绩,来为他创建一条记录,其中包括学生的姓名以及他的成绩排名。

下面我们可以利用enumerate()函数来实现这个需求:

students = ['Tom', 'John', 'Mary', 'Susan']
scores = [92, 80, 85, 95]
ranking = []
for index, student in enumerate(students):
    if scores[index] >= 90:
        rank = 'A'
    elif scores[index] >= 80:
        rank = 'B'
    else:
        rank = 'C'
    record = {'name': student, 'score': scores[index], 'ranking': rank}
    ranking.append(record)

在上面的代码中,我们使用了 enumerate() 函数对学生列表进行遍历,同时也获取了他们的索引值。在每个循环中,我们为每个学生创建了一条记录,其中包括了他的姓名,成绩,以及排名。最后,将这个记录添加到排名列表,以便日后使用。

(2)需要将元素的值和索引值重新排序。

例如,您已经有了一个有序的列表,但是需要将它们的排序方式改变。我们可以通过使用 enumerate() 函数来完成这个任务。

下面是一个简单的示例:

fruit_list = ['apple', 'banana', 'orange', 'kiwi']
for i, fruit in enumerate(sorted(fruit_list)):
    print(i, fruit)

在上面的代码中,我们使用了 sorted() 函数重新排序了水果列表,然后使用了 enumerate() 函数来遍历这个有序列表的每个元素。注意,我们也可以对元素索引值进行排序,这将得到一个新的列表。

4. 总结

enumerate()函数是Python中非常有用的一个函数,它可以帮助我们在对序列进行遍历时同时获取元素的值和它们的索引值。此外,该函数还支持设置起始索引值,并返回一个可迭代对象。使用enumerate()函数可以使代码更加简洁,同时也提高了代码的可读性。