您的位置:

Python enumerate:如何对序列进行迭代并自动计数

一、什么是enumerate()

Python中的enumerate()函数是一种用来将可遍历序列(如列表,元组,字符串等)组合为一个索引序列,同时列出数据下标和数据本身的函数。

fruits = ['apple', 'banana', 'orange']
for idx, fruit in enumerate(fruits):
    print(idx, fruit)

输出结果为:

0 apple  
1 banana 
2 orange

以上代码中,enumerate()函数将列表fruits中的数据与其索引值一一对应,输出时分别打印了索引序列和对应的数据本身。

二、如何使用enumerate()进行迭代和计数

1. 列表的迭代

enumerate()函数常常用来遍历一个列表时,自动计数每个数据在列表中的位置。

fruits = ['apple', 'banana', 'orange']
for idx, fruit in enumerate(fruits):
    print(f"第{idx+1}个水果是{fruit}")

输出结果为:

第1个水果是apple
第2个水果是banana
第3个水果是orange

在以上代码中,我们利用了字符串格式化的方法将每个水果的位置对应打印出来。

2. 字典的迭代

同样的,enumerate()函数也可以对字典进行迭代,不过此时获取到的是字典的键值和键名。

fruits = {'apple': 1.0, 'banana': 2.0, 'orange': 3.0}
for idx, (fruit_name, fruit_price) in enumerate(fruits.items()):
    print(f"第{idx+1}个水果是{fruit_name},价格是{fruit_price}")

输出结果为:

第1个水果是apple,价格是1.0
第2个水果是banana,价格是2.0
第3个水果是orange,价格是3.0

三、enumerate()的常见应用场景

1. 循环迭代时获取当前数据的位置

在循环迭代过程中,我们可以根据enumerate()函数获得当前数据的位置信息,以便在不同位置进行不同处理。

fruits = ['apple', 'banana', 'orange']
for idx, fruit in enumerate(fruits):
    if idx == 0:
        print("我最爱的水果是:")
    print(fruit)

输出结果为:

我最爱的水果是:
apple
banana
orange

在上面的例子中,我们根据索引位置选择性地输出了一些信息。

2. 计算列表或元组中某个数据出现的次数

当我们需要计算一个列表或元组中某个数据出现的次数时,可以利用enumerate()函数和if语句来实现。

fruits = ['apple', 'banana', 'orange', 'banana', 'apple']
count = 0
for idx, fruit in enumerate(fruits):
    if "apple" == fruit:
        count += 1
print(f"列表中共有{count}个苹果")

输出结果为:

列表中共有2个苹果

在以上代码中,我们利用if语句统计了出现次数。

3. 使用enumerate()遍历多个列表

在遍历多个列表时,可以将它们打包成一个元组进行遍历,此时就可以使用enumerate函数。

fruits = ['apple', 'banana', 'orange']
prices = [1.0, 2.0, 3.0]
for idx, (fruit, price) in enumerate(zip(fruits, prices)):
    print(f"第{idx+1}个水果是{fruit},价格是{price}")

输出结果为:

第1个水果是apple,价格是1.0
第2个水果是banana,价格是2.0
第3个水果是orange,价格是3.0

以上代码中,我们将两个列表打包成一个元组,然后利用enumerate()函数按照索引迭代每个元组。

四、小结

本文从enumerate()函数的基本使用入手,详细介绍了它在各种场景中的应用方法,包括列表迭代、字典迭代、循环迭代处理、计数、遍历多个列表等。