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

Python中的enumerate()函数及其应用示例

发布时间:2023-05-21 08:29:55

enumerate()是Python内置函数之一,用于遍历序列(列表、元组、字符串等)中的元素并同时获取它们的索引值。其语法结构如下:

enumerate(sequence, [start=0])

参数说明:

sequence:需要遍历的序列。

start:指定开始遍历的索引值,若未指定,则默认从0开始。

该函数返回一个枚举类型的对象,可以通过list()转为列表或遍历获取其中的元素。

示例:

# 普通遍历列表

fruits = ['apple', 'banana', 'orange', 'pear']

for i in range(len(fruits)):

    print(i, fruits[i])

# 0 apple

# 1 banana

# 2 orange

# 3 pear

# 使用enumerate()函数遍历列表,同时获取索引值和元素

fruits = ['apple', 'banana', 'orange', 'pear']

for i, fruit in enumerate(fruits):

    print(i, fruit)

# 0 apple

# 1 banana

# 2 orange

# 3 pear

# 指定从2索引开始遍历

fruits = ['apple', 'banana', 'orange', 'pear']

for i, fruit in enumerate(fruits, 2):

    print(i, fruit)

# 2 apple

# 3 banana

# 4 orange

# 5 pear

除了遍历序列外,enumerate()函数还可以用于为序列中的元素编号,例如:

# 为列表添加编号,生成字典

items = ['apple', 'banana', 'orange', 'pear']

dict_items = dict(enumerate(items, 1))

print(dict_items)

# {1: 'apple', 2: 'banana', 3: 'orange', 4: 'pear'}

# 生成列表,元素由数字和字符串组成

data = ['1', '2', '3', 'abc', '4', 'def', '5']

new_data = [int(val) if val.isdigit() else val for val in data]

print(new_data)

# [1, 2, 3, 'abc', 4, 'def', 5]

在以上示例中,使用了enumerate()函数来为列表元素添加编号,并将其转换为字典;也可以通过列表推导式,将其中的数字字符串转为整型,非数字字符串不做处理。

总之,enumerate()函数是Python中非常常用的函数之一,可以优化代码,提高效率,学好了,可以让你更加轻松地处理各种序列数据。